时间:2021-07-01 10:21:17 帮助过:29人阅读
可以通过TO_DATE(‘2021-5-1’, ‘YYYY-MM-DD’) 来将字符串数据转换为日期类型数据。
SELECT SESSIONTIMEZONE, CURRENT_DATE, CURRENT_TIMESTAMP FROM dual;
SESSIONTIMEZONE:返回当前时区。Asia/Shanghai
CURRENT_DATE:返回当前日期和时间。02-5月 -21
CURRENT_TIMESTAMP:返回当前时间戳。 02-5月 -21 05.25.09.931610000 下午 ASIA/SHANGHAI
日期函数
MONTHS_BETWEEN(DATE1, DATE2) :获取两个日期之间的月份差
SELECT CEIL(MONTHS_BETWEEN(sysdate, hire_date))
FROM employees ORDER BY 1;
ADD_MONTHS(DATE, n) : 在日期上增加n个月。
SELECT ADD_MONTHS(sysdate,7) FROM dual; --02-12月-21
NEXT_DAY(日期, 星期几): 查找下一个星期几对应的日期。
SELECT NEXT_DAY(sysdate, ‘星期五‘) FROM dual; --07-5月-21
LAST_DAY(日期) : 查找当月最后一天日期
SELECT LAST_DAY(sysdate) FROM dual; --2021-05-31 18:50:44 (当前日期2021-5-2)
ROUND(日期, ‘MONTH‘) : 1~15日的日期,返回本月一日。16~31的日期,返回下个月一日。
ROUND(日期, ‘YEAR‘) : 1.1~6.30的日期,返回当年1.1日。7.1~12.31的日期,返回下年的1.1日。
SELECT ROUND(TO_DATE(‘2021-7-1‘,‘YYYY-MM-DD‘),‘YEAR‘) FROM dual; ROUND(TO_DATE(‘2021 ------------------- 2022-01-01 00:00:00 SQL> SELECT ROUND(TO_DATE(‘2021-5-15‘,‘YYYY-MM-DD‘),‘MONTH‘) FROM dual; ROUND(TO_DATE(‘2021 ------------------- 2021-05-01 00:00:00
TRUNC(日期, ‘MONTH‘) : 返回当个月的第一天日期,相对于ROUND,TRUNC不进行四舍五入。
TRUNC(日期, ‘YEAR‘) : 返回年的第一天日期,相对于ROUND,TRUNC不进行四舍五入。
SELECT TRUNC(TO_DATE(‘2021-5-31‘,‘YYYY-MM-DD‘),‘MONTH‘) FROM dual; TRUNC(TO_DATE(‘2021 ------------------- 2021-05-01 00:00:00 SQL> SELECT TRUNC(TO_DATE(‘2021-12-31‘,‘YYYY-MM-DD‘),‘YEAR‘) FROM dual; TRUNC(TO_DATE(‘2021 ------------------- 2021-01-01 00:00:00
日期的计算
从日期添加或者减去一个数字,得到结果的日期值。
SELECT sysdate+2 FROM dual; --当前2021.5.2, 加2后得到04-5月 -21。
日期之间相减,得到之间相差的天数。
SELECT CEIL((sysdate - hire_date)/7) AS 入职周数 FROM employees;
SELECT TO_DATE(‘2021-05-01‘,‘YYYY-MM-DD‘) - TO_DATE(‘2021-04-30‘,‘YYYY-MM-DD‘) AS 日期差异 FROM dual; 日期差异 ---------- 1
Oracle 19C学习 - 04. SQL单行函数
标签:sha oracl UNC 判断 类型 相减 mat acl 日期格