文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

DATETIME FORMATE(时间格式)

2024-04-02 19:55

关注

来源于Oracle官方文档,为了工作中方便使用,这里截取下来供参考:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements004.htm#i34924

Table 3-15 Datetime Format Elements

ElementTO_* datetime functions?Description
-
/
,
.
;
:
"text"

Yes

Punctuation and quoted text is reproduced in the result.

AD
A.D.

Yes

AD indicator with or without periods.

AM
A.M.

Yes

Meridian indicator with or without periods.

BC
B.C.

Yes

BC indicator with or without periods.

CC
SCC

Century.

  • If the last 2 digits of a 4-digit year are between 01 and 99 (inclusive), then the century is one greater than the first 2 digits of that year.

  • If the last 2 digits of a 4-digit year are 00, then the century is the same as the first 2 digits of that year.

For example, 2002 returns 21; 2000 returns 20.

D

Yes

Day of week (1-7). This element depends on the NLS territory of the session.

DAY

Yes

Name of day.

DD

Yes

Day of month (1-31).

DDD

Yes

Day of year (1-366).

DL

Yes

Returns a value in the long date format, which is an extension of the Oracle Database DATE format, determined by the current value of the NLS_DATE_FORMAT parameter. Makes the appearance of the date components (day name, month number, and so forth) depend on the NLS_TERRITORY and NLS_LANGUAGE parameters. For example, in the AMERICAN_AMERICA locale, this is equivalent to specifying the format 'fmDay, Month dd, yyyy'. In the GERMAN_GERMANY locale, it is equivalent to specifying the format 'fmDay, dd. Month yyyy'.

Restriction: You can specify this format only with the TS element, separated by white space.

DS

Yes

Returns a value in the short date format. Makes the appearance of the date components (day name, month number, and so forth) depend on the NLS_TERRITORY and NLS_LANGUAGE parameters. For example, in the AMERICAN_AMERICA locale, this is equivalent to specifying the format 'MM/DD/RRRR'. In the ENGLISH_UNITED_KINGDOM locale, it is equivalent to specifying the format 'DD/MM/RRRR'.

Restriction: You can specify this format only with the TS element, separated by white space.

DY

Yes

Abbreviated name of day.

E

Yes

Abbreviated era name (Japanese Imperial, ROC Official, and Thai Buddha calendars).

EE

Yes

Full era name (Japanese Imperial, ROC Official, and Thai Buddha calendars).

FF [1..9]

Yes

Fractional seconds; no radix character is printed. Use the X format element to add the radix character. Use the numbers 1 to 9 after FF to specify the number of digits in the fractional second portion of the datetime value returned. If you do not specify a digit, then Oracle Database uses the precision specified for the datetime data type or the data type's default precision. Valid in timestamp and interval formats, but not in DATE formats.

Examples: 'HH:MI:SS.FF'

SELECT TO_CHAR(SYSTIMESTAMP, 'SS.FF3') from DUAL;

FM

Yes

Returns a value with no leading or trailing blanks.

See Also: Additional discussion on this format model modifier in the Oracle Database SQL Language Reference

FX

Yes

Requires exact matching between the character data and the format model.

See Also: Additional discussion on this format model modifier in the Oracle Database SQL Language Reference

HH
HH12

Yes

Hour of day (1-12).

HH24

Yes

Hour of day (0-23).

IW

Week of year (1-52 or 1-53) based on the ISO standard.

IYY
IY
I

Last 3, 2, or 1 digit(s) of ISO year.

IYYY

4-digit year based on the ISO standard.

J

Yes

Julian day; the number of days since January 1, 4712 BC. Number specified with J must be integers.

MI

Yes

Minute (0-59).

MM

Yes

Month (01-12; January = 01).

MON

Yes

Abbreviated name of month.

MONTH

Yes

Name of month.

PM
P.M.

Yes

Meridian indicator with or without periods.

Q

Quarter of year (1, 2, 3, 4; January - March = 1).

RM

Yes

Roman numeral month (I-XII; January = I).

RR

Yes

Lets you store 20th century dates in the 21st century using only two digits.

See Also: "The RR Datetime Format Element"

RRRR

Yes

Round year. Accepts either 4-digit or 2-digit input. If 2-digit, provides the same return as RR. If you do not want this functionality, then enter the 4-digit year.

SS

Yes

Second (0-59).

SSSSS

Yes

Seconds past midnight (0-86399).

TS

Yes

Returns a value in the short time format. Makes the appearance of the time components (hour, minutes, and so forth) depend on the NLS_TERRITORY and NLS_LANGUAGE initialization parameters.

Restriction: You can specify this format only with the DL or DS element, separated by white space.

TZD

Yes

Daylight saving information. The TZD value is an abbreviated time zone string with daylight saving information. It must correspond with the region specified in TZR. Valid in timestamp and interval formats, but not in DATE formats.

Example: PST (for US/Pacific standard time); PDT (for US/Pacific daylight time).

TZH

Yes

Time zone hour. (See TZM format element.) Valid in timestamp and interval formats, but not in DATE formats.

Example: 'HH:MI:SS.FFTZH:TZM'.

TZM

Yes

Time zone minute. (See TZH format element.) Valid in timestamp and interval formats, but not in DATE formats.

Example: 'HH:MI:SS.FFTZH:TZM'.

TZR

Yes

Time zone region information. The value must be one of the time zone region names supported in the database. Valid in timestamp and interval formats, but not in DATE formats.

Example: US/Pacific

WW

Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.

W

Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh.

X

Yes

Local radix character.

Example: 'HH:MI:SSXFF'.

Y,YYY

Yes

Year with comma in this position.

YEAR
SYEAR

Year, spelled out; S prefixes BC dates with a minus sign (-).

YYYY
SYYYY

Yes

4-digit year; S prefixes BC dates with a minus sign.

YYY
YY
Y

Yes

Last 3, 2, or 1 digit(s) of year.

 我们来逐一测试下:

1、诸如- / , . ; : "text"  这类符号表达字符可以在结果中重现

SQL> select to_char(sysdate,'yyyy"year"mm-dd;') from dual;
TO_CHAR(SYSDATE,'YYYY"YEAR"MM-DD;')
------------------------------------------
2015year02-24;

2、年的显示,SYEAR/YEAR字符显示年,SYYYY/YYYY显示公元数值年,Y,YYY 以逗号分隔的年显示方式,IYYY/IYY/IY/I显示年后几位数值,RR/RRRR数值显示年, B.C.公元前, A.D.公元 SCC/CC 世纪,如果年的后两个数值是01~99,则世纪值=年的前两个值加一,否则与年前两个值相同。AM(A.M.)/PM(P.M.)显示上午还是下午

SQL> select to_char(sysdate,'SYEAR,YEAR') from dual;
TO_CHAR(SYSDATE,'SYEAR,YEAR')
--------------------------------------------------------------------------------
 TWENTY FIFTEEN,TWENTY FIFTEEN
SQL> select to_char(sysdate,'SYYYY,YYYY,Y,YYY,IYYY,IYY,IY,I:RR,RRRR:B.C.,A.D.,SCC,CC,AM,P.M.') from dual;
TO_CHAR(SYSDATE,'SYYYY,YYYY,Y,YYY,IYYY,IYY,IY,I:RR,RRRR:B.C.,A.D.,SCC,CC,AM,P.M.
--------------------------------------------------------------------------------
 2015,2015,2,015,2015,015,15,5:15,2015:A.D.,A.D., 21,21,PM,P.M.

3、月的显示, MM数值显示月份,MON字符显示月份,MON完整字符显示月份,RM罗马字母显示月份。

SQL> select to_char(sysdate,'MM,MON,MONTH,RM') from dual;
TO_CHAR(SYSDATE,'MM,MON,MONTH,RM')
--------------------------------------------------------------------------------
02,FEB,FEBRUARY ,II

4、天的显示,D  一周中的天数,DAY 天的名称,DD 月中的天数,DDD表示年中的天数,DY以缩写的星期显示。

SQL> select to_char(sysdate,'D,DAY,DD,DDD,DY') from dual;
TO_CHAR(SYSDATE,'D,DAY,DD,DDD,DY')
--------------------------------------------------------------------------------
3,TUESDAY  ,24,055,TUE

5、周显示,IW年中的周(1-53),WW年中的周以当年的第一天算第一周,W月中的周,以第每个月头一天算第一周。

SQL> select to_char(sysdate,'IW,WW,W') from dual;
TO_CHAR(SYSDATE,'IW,W
---------------------
09,08,4

6、时间格式 DL以长时间格式显示,DS以短时间格式显示,这两者取决于NLS_TERRITORY和NLS_LANGUAGE两个参数配置,不同地区显示的格式不一样。E,EE分别以缩写和全称的方式显示时代。

SQL> select to_char(sysdate,'DL:DS') from dual;
TO_CHAR(SYSDATE,'DL:DS')
--------------------------------------------------------------------------------
Tuesday, February 24, 2015:2/24/2015

7、小时 HH/HH12以12小时显示,HH24以24小时显示。

SQL> select to_char(SYSTIMESTAMP,'HH,HH12,HH24') from dual;
TO_CHAR(SYSTIMESTAMP,'HH
------------------------
01,01,13

8、分钟MI

SQL> select to_char(systimestamp,'MI') from dual;
TO_CHA
------
13

9、秒数 SS显示秒数,FF显示毫秒精确度[1~9],FM让返回的值没有前后空格,FX精确匹配日期格式类型。

SQL> select to_char(SYSTIMESTAMP,'SS.FF3,SSSSS') from dual;
TO_CHAR(SYSTIMESTAMP,'SS.FF3,SSSSS')
------------------------------------------------------
58.180,49438

10、其他 TS短格式显示时间,TZD白天即使,TZH区域小时,TZM区域分钟,TZR时间区域信息,X小数点,Q季度。

SQL> select to_char(systimestamp,'TS,TZD,TZH,TZM,TZR') from dual;
TO_CHAR(SYSTIMESTAMP,'TS,TZD,TZH,TZM,TZR')
--------------------------------------------------------------------------------
2:09:27 PM,,+08,00,+08:00
SQL> select to_char(systimestamp,'XQ') from dual;
TO_CHA
------
.1

11、计算时间差

年份差

select floor(to_number(sysdate-to_date('01-31-1999','MM-DD-YYYY'))/365) as "YEARS" FROM DUAL;

月份差

select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL; 
select ceil(months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')))"MONTHS" FROM DUAL;

天数差(时*24,分24*60,以此类推)

select floor(to_number(sysdate-to_date('01-31-1999','MM-DD-YYYY'))) as "YEARS" FROM DUAL;

 

通过EXTRACT()获取精准的时间

SQL> SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 2:38:40') from dual;
EXTRACT(MINUTEFROMTIMESTAMP'2001-02-162:38:40')
-----------------------------------------------
                                             38

通过NEXT_DAY()函数获取未来时间,这里1-7分别表示从日、一、二、三、四、五、六

SQL> select sysdate,next_day(sysdate,6) from dual;
SYSDATE             NEXT_DAY(SYSDATE,6)
------------------- -------------------
2015-03-09 12:44:02 2015-03-13 12:44:02

查看有关时间的环境参数设置:

SQL> col PARAMETER for a30
SQL> col VALUE for a40
SQL> select * from nls_session_parameters;
PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                YYYY-MM-DD HH24:MI:SS
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯