原标题:oracle日期常用函数汇总
1. 日期转化为字符串 (以2018年09月20日为例)
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') strDateTime from dual; --获取年-月-日 时:分:秒
--显示结果为:2018-09-20 12:35:21
select to_char(sysdate,'yyyymmdd hh24:mi:ss') strDateTime from dual; --获取年月日 时:分:秒
--显示结果为:20180920 13:39:25
select to_char(sysdate,'yyyymmdd') strDateTime from dual; --获取年月日
--显示结果为:20180920
select to_char(sysdate,'yyyy') strYear from dual; --获取年
--显示结果为:2018
select to_char(sysdate,'mm') strMonth from dual; --获取月
--显示结果为:09
select to_char(sysdate,'dd') strDay from dual; --获取日
--显示结果为:20
select to_char(sysdate,'hh24') strHour from dual; --获取时
--显示结果为:13
select to_char(sysdate,'mi') strMinute from dual; --获取分
--显示结果为:46
select to_char(sysdate,'ss') strSecond from dual; --获取秒
--显示结果为:43
2. 查询某天是星期几
select to_char(to_date('2018-09-20','yyyy-mm-dd'),'day') strDay from dual;
显示结果:星期六
select to_char(to_date('2018-09-20','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = English') strDay from dual;
显示结果:saturday
3. 两个日期间的天数
select floor(sysdate - to_date('20180909','yyyymmdd')) strTime from dual;
--其中sysdate=2018/09/20 17:09:51
--显示结果:09
4.月份差
select months_between(date'2018-04-23',date'2017-04-23') days from dual;
5、查询某天是一年的第几天
select TO_CHAR(SYSDATE,'DDD'),sysdate from dual
310 2018-11-6 10:03:51
6、 用于计算在时间x之上机上Y个月后的时间值
select add_months(sysdate,6) from dual;
7、trunc()函数的日期用法
select trunc(sysdate) from dual --2013-01-06 今天的日期为2013-01-06
select trunc(sysdate, 'mm') from dual --2013-01-01 返回当月第一天.
select trunc(sysdate,'yy') from dual --2013-01-01 返回当年第一天
select trunc(sysdate,'dd') from dual --2013-01-06 返回当前年月日
select trunc(sysdate,'yyyy') from dual --2013-01-01 返回当年第一天
select trunc(sysdate,'d') from dual --2013-01-06 (星期天)返回当前星期的第一天
select trunc(sysdate, 'hh') from dual --2013-01-06 17:00:00 当前时间为17:35
select trunc(sysdate, 'mi') from dual --2013-01-06 17:35:00 TRUNC()函数没有秒的精确
8、 LAST_DAY函数返回指定日期对应月份的最后一天
SELECT last_day(SYSDATE) FROM dual;
9、用interval 求时间
sysdate - interval '10' day as "10天前",
sysdate - interval '10' hour as "10小时前",
sysdate - interval '10' minute as "10分钟前",
sysdate - interval '10' second as "10秒钟前",
sysdate - 10 as "10天前",
sysdate - 10 / 24 as "10小时前",
sysdate - 10 / (24 * 60) as "10分钟前",
sysdate - 10 / (24 * 3600) as "10秒钟前"
10、当年、当月第一天
select trunc(sysdate, 'mm') from dual --2018-3-1 返回当月第一天.
select trunc(sysdate,'yy') from dual --2018-1-1 返回当年第一天 返回搜狐,查看更多
责任编辑: