oracle数据库中DATE类型和TO_DATE()函数介绍

oracle数据库中DATE类型和TO_DATE()函数介绍

介绍TO_DATE之前我们先看下 DATE 数据类型:

DATE 数据类型

DATE 数据类型允许你存储当前的时间点,但要注意的是,这个时间点是精确到秒的,

毫秒是无法用这个格式存储的

DATE数据类型存储 年,月,天,小时,分钟和秒

DATE数据类型的格式化

SELECT

value

FROM

V$NLS_PARAMETERS

WHERE

parameter = 'NLS_DATE_FORMAT';

在oracle数据库系统中,我们可以看到它的值是:

DD-MON-RR

我们可以通过修改NLS_DATE_FORMAT 的值来改变系统默认的日期输出格式:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';

我们来验证我们的修改,执行下面的语句

SELECT

sysdate

FROM

dual;

结果:

2020-06-11

进入主题 TO_DATE():

SELECT

TO_DATE( '2020-06-11', 'yyyy-mm-dd' )

FROM

dual;

结果:

2020-06-11

除了TO_DATE()函数,我们还可以使用如下的语法通过指定DATE字符来实现:

DATE 'YYYY-MM-DD'

我们来创建一张表作为演示:

CREATE TABLE my_events (

event_id NUMBER GENERATED BY DEFAULT AS IDENTITY,

event_name VARCHAR2 ( 255 ) NOT NULL,

location VARCHAR2 ( 255 ) NOT NULL,

start_date DATE NOT NULL,

end_date DATE NOT NULL,

PRIMARY KEY ( event_id )

);

分别使用DATE字符和TO_DATE函数插入数据:

INSERT INTO my_events

(event_name,

location,

start_date,

end_date)

VALUES ( 'Oracle OpenWorld',

'San Francisco, CA, USA',

TO_DATE( 'October 01, 2017', 'MONTH DD, YYYY' ),

TO_DATE( 'October 05, 2017', 'MONTH DD, YYYY'));

INSERT INTO my_events

(event_name,

location,

start_date,

end_date)

VALUES ( 'TechEd US',

'Las Vegas, NV, USA'

DATE '2017-09-25',

DATE '2017-09-29' );

结果:

SELECT

*

FROM

my_events;

我们可以看到都成功插入了

基本的DATE格式化元素介绍:

YYYY 四位数据的年 YYY 年的后三位YY 年的后两位Y 年的最后以为MM 月份(01-12)DDD 年中的天(1-366)DD 月中的天(1-31)D 星期中的天(1-7)HH 一天中的小时(1-12)HH12 一天中的小时(1-12)HH24 一天中的小时(0-23)24小时制MI 分钟(0-59)SS 秒(0-59)

相关推荐