Oracle中的日期相关函数(部分)

xiaoxiao2021-02-27  185

日期和字符转换函数用法

日期转化为字符串

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //获取时间的年 select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的月 select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的日 select to_char(sysdate,'dd') as nowDay from dual; //获取时间的时 select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的分 select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的秒 select to_char(sysdate,'ss') as nowSecond from dual;

字符串转换成日期

select to_date('2017-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual

获取当前日期

select sysdate from dual;

求某天是星期几

select to_char(to_date('2017-06-06','yyyy-mm-dd'),'day') from dual;

结果是星期二,如果想改变显示语言,比如英语

select to_char(to_date('2017-06-06','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;

结果是:tuesday

求两个日期间的天数

select floor(sysdate - to_date('20070405','yyyymmdd')) from dual;

求两个日期间的月份数

MONTHS_BETWEEN (x, y)用于计算x和y之间有几个月如果x在日历中比y早,那么MONTHS_BETWEEN()就返回一个负数 当x 和 y 之间的月份之差不是整月的时候,可以采用小数表示

select months_between(to_date('01-31-2018','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;

Next_day(date,char)

用于计算x时间后第一个星期y的时间,date参数为日期型, char:为1~7或Monday/Mon~Sunday/,还可以是星期一、星期二。。。星期日

select next_day(sysdate,'星期日') from dual;

注意:1表示星期日,2代表星期一……

一年中的第几天

select TO_CHAR(SYSDATE,'DDD'),sysdate from dual

两个日期之间的小时数

select (sysdate-to_date('2017-06-06 12:00:00','yyyy-mm-dd hh24:mi:ss'))*24 from dual

舍入到最接近的日期

select sysdate S1, round(sysdate) S2, round(sysdate, 'year') YEAR, round(sysdate, 'month') MONTH, round(sysdate, 'day') DAY from dual;

注意:day是舍入到最接近的星期日 所以上面的结果应该是 S1:2017/6/6 15:32:00 S2:2017/6/7 YEAR:2017/1/1 MONTH:2017/6/1 DAY:2017/6/4

获取月的第一天,最后一天

SELECT Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month, LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_Month FROM dual;

获取最后指定日期所在月份的最后一天

SELECT LAST_DAY(HIREDATE) FROM EMP;

获取某年有多少天

select add_months(trunc(to_date('2004-01-10', 'yyyy-mm-dd'), 'year'), 12) - trunc(to_date('2004-01-01', 'yyyy-mm-dd'), 'year') from dual

截取年月日

截取当前时间的年份

SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL;

截取月份

SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL;

截取日期

SELECT EXTRACT(DAY FROM SYSDATE) FROM DUAL;
转载请注明原文地址: https://www.6miu.com/read-12827.html

最新回复(0)