Oracle中有关日期的语法

时间:2021-10-16 16:37:31

Oracle中有关日期的语法

Oracle提供了丰富的日期函数。利用日期函数可以灵活的对日期进行运算。

to_date()函数——将字符串转换为日期型

to_date()函数用于将字符串转换为日期。被转换的字符串必须符合特定的日期格式。

select to_date('12/02/09', 'mm/dd/yy') result from dual;

add_months()函数——为日期加上特定月份

add_months()函数将为日期添加特定月份,并获得新的日期。

select to_char(add_months(sysdate, 2), 'yyyy-mm-dd') result from dual;

last_day()函数——返回特定日期所在月的最后一天

last_day()函数将接受一个日期参数。该函数首先获得日期参数所在月的信息,然后获得该月最后一天的日期。

select to_char(last_day(sysdate), 'yyyy-mm-dd') result from dual;

可以综合利用add_months()函数来获得若干月之后的月份的最后一天。

select to_char(last_day(add_months(sysdate, 3)), 'yyyy-mm-dd') result from dual;

months_between ()函数——返回两个日期所差的月数

months_between()函数用于获取两个日期所间隔的月数。该函数的返回值是一个实数。

select months_between(sysdate, to_date('2009-02-08', 'yyyy-mm-dd')) result from dual;

当第一个日期早于第二个日期,那么返回值将是负值。

select months_between(to_date('2009-02-08', 'yyyy-mm-dd'), to_date('2009-03-08', 'yyyy-mm-dd')) result from dual;

current_date()函数——返回当前会话时区的当前日期

current_date()函数用于返回当前会话时区的当前日期。

select sessiontimezone, to_char(current_date, 'yyyy-mm-dd hh:mi:ss') result from dual;

注意与说明:current_date等无参数函数作为Oracle的关键字存在。在使用时,不能为其添加小括号。即select current_date() from dual是错误的SQL语句。

current_timestamp()函数——返回当前会话时区的当前时间戳

current_timestamp()函数用于返回当前会话时的区时间戳。可以结合sessiontimezone来查看其用法。

select sessiontimezone, current_timestamp from dual;

extract()函数——返回日期的某个域

日期由若干域组成,例如年、月、日、小时等等。extract()函数可以返回这些域的具体值。为了使用该函数,除了要指定原日期外,还应该指定要返回的域名。

select extract(year from sysdate) result from dual;

需要注意的是,year、month、day域只能从日期(如sysdate)中获得,而hour、minute、second只能从时间型(如systimestamp)中获得。

相关文章