最近的一个功能定时任务要求在当天凌晨2点生成前一天的数据。涉及到数据库时间的操作,特此记录一下,后面找时间把获取时间这一块全部整理一下。
-- 获取当前系统的前一天日期0点到23:59:59的时间
select TRUNC(SYSDATE - 1) , TRUNC(SYSDATE - 1)+1-1/86400 from dual;
--获取当天时间的0时0分
select TRUNC(SYSDATE) FROM dual;
--获取当天时间的23点59分59秒(在当天0时0分0秒的基础上加1天后再减1秒)
SELECT TRUNC(SYSDATE)+1-1/86400 FROM dual;
--取得当前日期是一个星期中的第几天,注意:星期日是第一天
select to_char(sysdate,'D'),to_char(sysdate,'DAY') from dual;
--获取当前月的第一天和最后一天
select to_char(sysdate,'yyyy-mm')||'-01' firstday,to_char(last_day(sysdate),'yyyy-mm-dd') lastday from dual;
--获取当前月份
SELECT EXTRACT(MONTH FROM sysdate) FROM DUAL;
原文:https://www.cnblogs.com/jasonboren/p/12299298.html