>首页> IT >

总结分享Oracle日期函数

时间:2022-03-18 18:57:42       来源:转载
本篇文章给大家带来了关于Oracle的相关知识,其中主要介绍了一些常用的日期函数相关问题,包括了SYSDATE、ADD_MONTHS、LAST_DAY、TRUNC、ROUND等等,希望对大家有帮助。

推荐教程:《Oracle教程》

系统日期、时间函数

SYSDATE函数

该函数没有参数,可以得到系统的当前时间。

案例代码:

select to_char(sysdate,"yyyy-mm-dd hh24:mi:ss") from dual;

结果:

SYSTIMESTAMP函数

该函数没有参数,可以得到系统的当前时间,该时间包含时区信息,精确到微秒。

案例代码

select systimestamp from dual;

结果:

数据库时区函数

DBTIMEZONE函数

该函数没有输入参数,返回数据库时区。

案例代码:

select dbtimezone from dual;

结果:

给日期加上指定的月份函数:

ADD_MONTHS(r,n)函数

该函数返回在指定日期r上加上一个月份数n后的日期。其中

r:指定的日期。

n:要增加的月份数,如果N为负数,则表示减去的月份数。

案例代码:

select to_char(add_months(to_date("2018-11-12", "yyyy-mm-dd"), 1),               "yyyy-mm-dd"),       to_char(add_months(to_date("2018-10-31", "yyyy-mm-dd"), 1),               "yyyy-mm-dd"),       to_char(add_months(to_date("2018-09-30", "yyyy-mm-dd"), 1),               "yyyy-mm-dd")  from dual;

结果:(如果指定的日期是月份的最后一天,返回的也是新的月份的最后一天,如果新的月份比指定的月份日期少,将会自动调回有效日期)

月份最后一天函数

LAST_DAY(r)函数

返回指定r日期的当前月份的最后一天日期。

案例代码:

select last_day(sysdate) from dual;

结果:

指定日期后一周的日期函数:

NEXT_DAY(r,c)函数

返回指定R日期的后一周的与r日期字符(c:表示星期几)对应的日期。

案例代码:

select next_day(to_date("2018-11-12","yyyy-mm-dd"),"星期四") from dual;

结果:

返回指定日期中特定部分的函数

EXTRACT(time)函数

返回指定time时间当中的年、月、日、分等日期部分。

案例代码:

select extract(year from timestamp "2018-11-12 15:36:01") as year,       extract(month from timestamp "2018-11-12 15:36:01") as month,       extract(day from timestamp "2018-11-12 15:36:01") as day,       extract(minute from timestamp "2018-11-12 15:36:01") as minute,       extract(second from timestamp "2018-11-12 15:36:01") as second  from dual;

结果:

返回两个日期间的月份数:

MONTHS_BETWEEN(r1,r2)函数

该函数返回r1日期和r2日期直接的月份。当r1>r2时,返回的是正数,假如r1和r2是不同月的同一天,则返回的是整数,否则返回的小数。当r1

案例代码:

select months_between(to_date("2018-11-12", "yyyy-mm-dd"),                      to_date("2017-11-12", "yyyy-mm-dd")) as zs, --整数       months_between(to_date("2018-11-12", "yyyy-mm-dd"),                      to_date("2017-10-11", "yyyy-mm-dd")) as xs, --小数       months_between(to_date("2017-11-12", "yyyy-mm-dd"),                      to_date("2018-10-12", "yyyy-mm-dd")) as fs --负数  from dual;

结果:

日期截取函数

ROUND(r[,f])函数

将日期r按f的格式进行四舍五入。如果f不填,则四舍五入到最近的一天。

案例代码:

select sysdate, --当前时间       round(sysdate, "yyyy") as year, --按年       round(sysdate, "mm") as month, --按月       round(sysdate, "dd") as day, --按天       round(sysdate) as mr_day, --默认不填按天       round(sysdate, "hh24") as hour --按小时  from dual;

结果:

TRUNC(r[,f])函数

将日期r按f的格式进行截取。如果f不填,则截取到当前的日期。

案例代码:

select sysdate, --当前时间       trunc(sysdate, "yyyy") as year, --按年       trunc(sysdate, "mm") as month, --按月       trunc(sysdate, "dd") as day, --按天       trunc(sysdate) as mr_day, --默认不填按天       trunc(sysdate, "hh24") as hour --按小时  from dual;

结果:

推荐教程:《Oracle学习教程》

以上就是总结分享Oracle日期函数的详细内容,更多请关注php中文网其它相关文章!

关键词: 当前时间 四舍五入