首页 > 代码库 > 使用日期
使用日期
Oracle数据库以数字格式存储日期和时间,这种格式支持存储世纪、年、月、日、时、分、秒。
sysdate函数,没有参数,返回数据库服务器当前的系统日期和时间。
select sysdate from dual;
日期运算:两个日期之间只能使用减法运算。Date1 - Date2 = number。两个日期相减返回天数,是数值类型。
SQL> select to_date(‘2017-10-09‘) -to_date(‘2017-09-09‘) from dual; TO_DATE(‘2017-10-09‘)-TO_DATE(‘2017-09-09‘) ------------------------------------------- 30
months_between函数,返回两个日期之间的月数(日期不对奇则按每月31天):
SQL> select months_between(sysdate,sysdate-31) from dual; MONTHS_BETWEEN(SYSDATE,SYSDATE-31) ---------------------------------- 1
SQL> select months_between(‘2017-04-01‘, ‘2017-01-01‘) from dual;
MONTHS_BETWEEN(‘2017-03-01‘,‘2017-02-01‘)
-----------------------------------------
3
add_months函数,给日期加或减月数,返回日期:
SQL> select sysdate, add_months(sysdate, 2), add_months(sysdate, 2.5) from dual; SYSDATE ADD_MONTHS(SYSDATE, ADD_MONTHS(SYSDATE, ------------------- ------------------- ------------------- 2017-04-15 17:58:31 2017-06-15 17:58:31 2017-06-15 17:58:31
-- 忽略小数2与2.5作用相同
next_day函数,返回指定的日子(一星期内)下一次出现的日期。(星期天是第一天):
SQL> select next_day(‘2017-04-18‘, 7) from dual; NEXT_DAY(‘2017-04-1------------------- 2017-04-22 00:00:00 SQL> select next_day(‘2017-04-18‘, ‘星期六‘) from dual; NEXT_DAY(‘2017-04-1 ------------------- 2017-04-22 18:05:56 -- 2017-04-18星期二,下一个星期六是2017-04-22,星期六是一周的第7天,所以用next_day(date,7)
last_day函数,返回当前日期,月份的最后一天,日期类型:
SQL> select last_day(‘2017-4-18‘) from dual; LAST_DAY(‘2017-4-18 ------------------- 2017-04-30 00:00:00 -- 返回当前日期,当月的最后一天
round日期的四舍五入:
SQL> select sysdate, round(sysdate), round(sysdate,‘yyyy‘), round(sysdate,‘MM‘), round(sysdate,‘DD‘) from dual; SYSDATE ROUND(SYSDATE) ROUND(SYSDATE,‘YYYY ROUND(SYSDATE,‘MM‘) ROUND(SYSDATE,‘DD‘) ------------------- ------------------- ------------------- ------------------- ------------------- 2017-04-16 18:31:13 2017-04-17 00:00:00 2017-01-01 00:00:00 2017-05-01 00:00:00 2017-04-17 00:00:00
trunc日期的截取:
SQL> select sysdate, trunc(sysdate), trunc(sysdate,‘yyyy‘), trunc(sysdate,‘MM‘), trunc(sysdate,‘DD‘) from dual; SYSDATE TRUNC(SYSDATE) TRUNC(SYSDATE,‘YYYY TRUNC(SYSDATE,‘MM‘) TRUNC(SYSDATE,‘DD‘) ------------------- ------------------- ------------------- ------------------- ------------------- 2017-04-16 18:32:45 2017-04-16 00:00:00 2017-01-01 00:00:00 2017-04-01 00:00:00 2017-04-16 00:00:00
使用日期
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。