经常遇到有朋友问询关于日期时间格式化的问题(或可以通过格式化轻易解决),经过参考Oracle SQL Reference官方文档,并附上详细的应用示例综合成文,希望能够对大家学习和使用有所帮助。本篇可视为"oracle著名及非著名函数介绍"的补充!
环境:
SQL> select *from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL> SELECT SESSIONTIMEZONE FROM DUAL;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+08:00
SQL> show parameter nls;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_date_format string yyyy-mm-dd hh24:mi:ss
nls_language string SIMPLIFIED CHINESE
一、日期及时间
格式串 说明及示例
---------- -----------------------------------------------------------
-/,.;: 指定返回字串分隔符
例如:
SQL> select to_char(sysdate,'yyyy/mm/dd') from dual;
TO_CHAR(SYSDATE,'YYYY/MM/DD')
-----------------------------
2007/12/14
SQL> select to_char(sysdate,'yyyy-mm-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DD')
-----------------------------
2007-12-14
AD/A.D. 公元标识
例如:
SQL> select to_char(sysdate,'AD YYYY-MM-DD') from dual;
TO_CHAR(SYSDATE,'ADYYYY-MM-DD'
------------------------------
公元 2007-12-14
BC/B.C. 公元标识
例如
SQL> select to_char(sysdate,'BC YYYY-MM-DD') from dual;
TO_CHAR(SYSDATE,'BCYYYY-MM-DD'
------------------------------
公元 2007-12-14
AM/A.M. 子午线标识
例如:
SQL> select to_char(sysdate,'YYYY-MM-DD AM hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDAMH
------------------------------
2007-12-14 下午 13:41:58
PM/P.M. 子午线标识
例如:
SQL> select to_char(sysdate,'YYYY-MM-DD PM hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDPMH
------------------------------
2007-12-14 下午 13:42:23
CC/SCC 世纪标识,S前缀指定如遇公元前的显示,会在显示前加(-)
提示:
l 如果年份中最后两位数字在01到99(含)之间,则返回值等于年份前两位+1
l 如果年份中最后两位数字是00,则返回值与年份前两位相同
例如:
SQL> select to_char(to_date('2000-8-3','YYYY-MM-DD'),'cc') from dual;
TO_CHAR(TO_DATE('2000-8-3','YY
------------------------------
20
SQL> select to_char(to_date('2001-8-3','YYYY-MM-DD'),'cc') from dual;
TO_CHAR(TO_DATE('2001-8-3','YY
------------------------------
21
D 指定日期在周中的数值(范围:1-7)
例如:
SQL> select to_char(to_date('2007-12-14','yyyy-mm-dd'),'D') from dual;
TO_CHAR(TO_DATE('2007-12-14','
------------------------------
6
DD 指定日期在当月中的天数(范围:1-31)
例如:
SQL> select to_char(to_date('2007-12-14','yyyy-mm-dd'),'DD') from dual;
TO_CHAR(TO_DATE('2007-12-14','
------------------------------
14
DDD 指定日期在当年中的天数(范围:1-366)
例如:
SQL> select to_char(to_date('2007-12-14','yyyy-mm-dd'),'DDD') from dual;
TO_CHAR(TO_DATE('2007-12-14','
------------------------------
348
DAY 指定日期在周中的名称
例如:
SQL> select to_char(to_date('2007-12-14','yyyy-mm-dd'),'Day') from dual;
TO_CHAR(TO_DATE('2007-12-14','
------------------------------
星期五
MON 返回指定日期的月份简写
例如:
SQL> select to_char(sysdate,'MON') from dual;
TO_CHAR(SYSDATE,'MON')
----------------------
12月
与DY同,中文看不出简写效果。
MONTH 返回指定日期的月份全称
例如:
SQL> select to_char(sysdate,'MONTH') from dual;
TO_CHAR(SYSDATE,'MONTH')
------------------------
12月
YEAR/SYEAR 返回字符型年,此处s前缀与SCC处相同
例如:
SQL> select to_char(sysdate,'year') from dual;
TO_CHAR(SYSDATE,'YEAR')
------------------------------------------
two thousand seven
YYYY/SYYYY 返回数字型年,此处s前缀与SCC处相同
例如:
SQL> select to_char(sysdate,'yyyy') from dual;
TO_CHAR(SYSDATE,'YYYY')
-----------------------
2007
MM 返回指定日期的月份(范围:1-12)
例如:
SQL> select to_char(sysdate,'MM') from dual;
TO_CHAR(SYSDATE,'MM')
---------------------
12
HH 小时(范围:1-12)
例如:
SQL> select to_char(sysdate,'am hh') from dual;
TO_CHAR(SYSDATE,'AMHH')
-----------------------
下午 02
HH12 小时(范围:1-12)
例如:
SQL> select to_char(sysdate,'am hh12') from dual;
TO_CHAR(SYSDATE,'AMHH12')
-------------------------
下午 02
HH24 小时(范围:0-23)
例如:
SQL> select to_char(sysdate,'am hh24') from dual;
TO_CHAR(SYSDATE,'AMHH24')
-------------------------
下午 14
MI 返回指定时间的分钟(范围0-59)
例如:
SQL> select to_char(sysdate,'MI') from dual;
TO_CHAR(SYSDATE,'MI')
---------------------
05
SS 返回指定时间的秒数(范围:0-59)
例如:
SQL> select to_char(sysdate,'ss') from dual;
TO_CHAR(SYSDATE,'SS')
---------------------
34
FF[1-9] 返回毫秒数,可指定长度1-9,默认6位
例如:
SQL> select to_char(systimestamp,'ff4') from dual;
TO_CHAR(S
---------
6710
SQL> select to_timestamp(to_char(systimestamp,'yyyymmddhh24missff3'),'yyyymmddhh24missff3') from dual;
TO_TIMESTAMP(TO_CHAR(SYSTIMESTAMP,'YYYYMMDDHH24MISSFF3'),'YYYYMMDDHH24MISSF
---------------------------------------------------------------------------
03-4月 -12 11.51.29.247000000 上午
Y,YYY 返回有逗号分隔显示的年
例如:
SQL> select to_char(sysdate,'y,yyy') from dual;
TO_CHAR(SYSDATE,'Y,YYY')
------------------------
2,007
I/IY/IYY/IYYY 返回ISO标准年
例如:
SQL> select to_char(to_date('187-4-3','yyyy-mm-dd'),'IYYY') from dual;
TO_CHAR(TO_DATE('187-4-3','YYY
------------------------------
0187
Y/YY/YYY 以指定长度返回日期的年份
例如:
SQL> select to_char(sysdate,'yy') from dual;
TO_CHAR(SYSDATE,'YY')
---------------------
07
W 返回指定日期在当月中的第X周(范围:1-5)
例如:
SQL> select to_char(to_date('2007-6-18','yyyy-mm-dd'),'w') from dual;
TO_CHAR(TO_DATE('2007-6-18','Y
------------------------------
3
WW 返回指定日期在当年中的第X周(范围:1-53)
例如:
SQL> select to_char(to_date('2007-6-18','yyyy-mm-dd'),'ww') from dual;
TO_CHAR(TO_DATE('2007-6-18','Y
------------------------------
25
IW 指定日期在当年中第X周(范围:1-52或1-53(润年))
例如:
SQL> select to_char(sysdate,'IW') from dual;
TO_CHAR(SYSDATE,'IW')
---------------------
50
RM 以罗马数字形式返回月份(范围I-XII)
例如:
SQL> select to_char(to_date('2007-11-3','yyyy-mm-dd'),'RM') from dual;
TO_CHAR(TO_DATE('2007-11-3','Y
------------------------------
XI
Q 返回指定日期的季度(范围:1-4)
例如:
SQL> select to_char(to_date('2007-2-3','yyyy-mm-dd'),'q') from dual;
TO_CHAR(TO_DATE('2007-2-3','YY
------------------------------
1
J 自公元前4712年1月1日到指定日期的总天数
例如:
SQL> select to_char(sysdate,'J') from dual;
TO_CHAR(SYSDATE,'J')
--------------------
2454449
SSSSS 返回自午夜到指定时间共逝去的秒数(范围:0-86399)
例如:
SQL> select to_char(sysdate,'sssss') from dual;
TO_CHAR(SYSDATE,'SSSSS')
------------------------
55141
分享到:
相关推荐
这篇博文"javascript 日期数字文本格式化"可能详细解释了如何使用自定义工具或库来实现这一功能。 首先,我们来看`02.bizplant-util-DateFormat.js`这个文件。这很可能是一个自定义的日期格式化工具函数,可能包含...
掌握这些日期时间函数和格式化方法对于数据库开发者来说是非常重要的,因为几乎所有的应用都会涉及到时间和日期的处理。 最后,在实际应用中,处理日期和时间需要注意时区和夏令时等问题。MySQL也提供了相关函数来...
接着,我们讨论数字格式化。`ToString()`方法同样适用于`int`、`double`、`float`等数值类型。比如,`12345.ToString("N2")`会将整数转换为带有两位小数的数字字符串,即"12,345.00"。`"N"`是货币或数字格式,`"2"`...
本文将深入探讨C#中日期格式化的各种方法与细节,帮助开发者更好地理解和掌握日期时间的格式化技巧。 #### 标准格式与自定义格式 C#提供了多种内置的标准格式化模式,同时也支持高度灵活的自定义格式化。标准格式...
此外,还可以通过结合JSTL库中的`fmt`标签进行数字格式化。 示例: ```jsp *" value="10" /> ${number * 10}" type="number" maxFractionDigits="2" /> ``` 综上所述,EL表达式为JSP开发提供了极大的便利性,使得...
这个方法接受两个参数:一个是格式字符串,用于定义输出的格式,另一个是`IFormatProvider`,用于指定特定的文化习惯(如日期和时间分隔符、数字格式等),通常可省略,使用默认的`DateTimeFormatInfo.InvariantInfo...
在这个例子中,`格式化日期时间`函数接收两个参数:要格式化的日期时间变量和格式化字符串。然后,它会返回一个根据指定格式格式化后的字符串,我们可以通过`输出`命令打印到控制台。 除了基本的格式化,易语言还...
它接受两个参数:需要格式化的日期或时间字段,以及一个包含格式代码的字符串。下面是一些常用的格式化代码: - `%Y`:四位数字的年份,例如 `2023` - `%y`:两位数字的年份,例如 `23` - `%m`:两位数字的月份...
在PB中,日期和时间处理是常见且重要的功能,涉及多种函数来帮助开发者进行日期转换、格式化以及获取当前时间等操作。本文将深入解析PB中的日期和时间函数,包括日期转换、打印函数等,为PB开发者提供全面的参考指南...
比如,你可以创建一个函数来接受不同的格式参数,然后根据这些参数返回格式化的日期: ```javascript function formatDate(date, format) { let year = date.getFullYear(); let month = "0" + (date.getMonth() ...
`SimpleDateFormat`支持各种日期和时间的格式化模式。例如: - `yyyy`:四位数的年份。 - `MM`:月份,两位数表示。 - `dd`:日期,两位数表示。 - `HH`:小时,24小时制。 - `mm`:分钟。 - `ss`:秒。 #### 知识...
在Visual Basic (VB)中,`Format`函数是一个非常实用且强大的工具,它能够帮助开发者对数值、日期和时间进行格式化处理,使其更易于阅读和展示。本文将详细介绍`Format`函数的用法,包括其基本语法、参数解释以及...
在Lua编程语言中,获取和格式化系统时间是常见的任务,尤其在处理日期和时间相关的应用中。本文将深入探讨如何使用Lua获取系统...理解这些函数的用法和格式化参数,可以帮助你更好地处理与日期和时间相关的编程任务。
通过灵活地使用该命令的不同选项,用户不仅可以获取当前的日期时间信息,还能对这些信息进行格式化输出,甚至可以直接设置系统的日期时间。 #### 二、Date命令的基本语法 `date` 命令的基本语法如下: ```bash ...
在SQL中,日期和时间数据类型的格式化是一个常见的需求,特别是在报表或用户界面展示时,我们需要将数据库存储的标准日期格式转换为更易于阅读的形式。SQL Server 提供了 `CONVERT` 函数,允许我们根据需要将日期和...
下面详细介绍了一些常见的日期时间格式化代码及其含义: - **d (ShortDatePattern)**:表示短日期格式,例如`01/03/2007`。 - **D (LongDatePattern)**:表示长日期格式,例如`Wednesday, March 01, 2007`。 - **f ...