ORACLE 日期函数
SYSDATE 当前的数据库系统时间
ADD_MONTHS(加减指定的月份)
MONTHS_BETWEEN(取两个日期之间相隔的月数)
LAST_DAY(取指定日期所在月的最后一天)
示例语句:
取当前数据库系统的时间
SELECT SYSDATE FROM DUAL;
以特定的时间格式显示
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
更改当前会话(SESSION)的方式,来统一设置当前会话日期显示格式
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
显示后一个月的时间
SELECT ADD_MONTHS(SYSDATE,1) FROM DUAL;
显示前一个月的时间
SELECT ADD_MONTHS(SYSDATE,-1) FROM DUAL;
显示后一个月和前一个月之间的月数
SELECT MONTHS_BETWEEN(ADD_MONTHS(SYSDATE,1),ADD_MONTHS(SYSDATE,-1)) FROM DUAL;
显示本月最后一天的时间
SELECT LAST_DAY(SYSDATE) FROM DUAL;
ROUND(DATE,'FORMAT_STRING)
功能:按日期掩码的格式对给定的日期DATE进行舍入
SELECT ROUND (SYSDATE,'YYYY'),ROUND(SYSDATE,'MM'),ROUND(SYSDATE,'DD') FROM DUAL;
TRUNC(DATE,'FORMAT_STRING)
功能:按日期掩码的格式对给定的日期DATE进行截取
SELECT TRUNC(SYSDATE,'YYYY'),TRUNC(SYSDATE,'MM'),TRUNC(SYSDATE,'DD') FROM DUAL;
TO_CHAR(date, ‘format_string’)(按照时间掩码format_string的格式要求,将日期型数据date转换为字符型数据)
TO_DATE(‘string’, ‘format_string’)(将字符型数据string按照时间掩码format_string的格式要求,转换为相应的日期型数据)
掩码元素 |
含义 |
YYYY |
四位数年份 (如:2005) |
YY |
二位数年份(如 05) |
Q |
季度(1-4) |
MM |
月份(01-12) |
WW |
年的星期数(1-53),其中第一星期为年的第一天至第七天 |
W |
月的星期数(1-5),其中第一星期为月的第一天至第七天 |
DDD |
年的日(1-366) |
DD |
月的日(1-31) |
D |
周的日(1-7),其中周日为1,周六为7 |
HH24 |
24小时制(0-23) |
MI |
分钟(0-59) |
SS |
秒(0-59) |
SSSSS |
自午夜之后的秒(0-86399) |
查看当前日期的年份,月份,日期,小时,分钟
SELECT TO_CHAR(SYSDATE,'YYYY') YEAR,TO_CHAR(SYSDATE,'MM') MONTH,TO_CHAR(SYSDATE,'DD') DAY,
TO_CHAR(SYSDATE,'HH24') HOUR,TO_CHAR(SYSDATE,'MI') MINUTE,TO_CHAR(SYSDATE,'SS') S
FROM DUAL;
查看当前日期是在本年的第几个季度
SELECT TO_CHAR(SYSDATE,'Q') FROM DUAL;
查看当前日期是在本年的第几个星期,在本月的第几周
SELECT TO_CHAR(SYSDATE,'WW'),TO_CHAR(SYSDATE,'W') FROM DUAL;
查看当前日期是在本年的第几天,在本周的第几天(周日为1,周六为7)
SELECT TO_CHAR(SYSDATE,'DDD'),TO_CHAR(SYSDATE,'D') FROM DUAL;