oracle日期常用sql
select to_date('2023-11-03','YYYY-MM-DD')+(LEVEL-1) *INTERVAL '15' MINUTE from dual connect by level<=96;----获取间隔15分钟的时间段
select to_char(TRUNC(to_date('2023','YYYY'),'YYYY')+(LEVLE-1),'YYYY-MM-DD') from dual connect by level<=TRUNC(ADD_MONTHS(TO_DATE('2023','YYYY'),12),'YYYY')-TRUNC(TO_DATE('2023','YYYY'),'YYYY');--获取一年的日期
select t.datetime,decode(to_char(to_date(t.datetime,'yyyy-mm-dd'),'d'),'1','周日','2','周1','3','周2','4','周3','5','周4','6','周5','7','周6') from (select to_char(TRUNC(to_date('2023','YYYY'),'YYYY')+(LEVLE-1),'YYYY-MM-DD')as datetime from dual connect by level<=TRUNC(ADD_MONTHS(TO_DATE('2023','YYYY'),12),'YYYY')-TRUNC(TO_DATE('2023','YYYY'),'YYYY'))t----获取一年的日期对应的周数
select TRUNC(to_date('2023-11-15','YYYY-MM-DD'),'MM') fROM dual---获取指定日期月份的第一天
select last_day(to_date('2023-11-15','YYYY-MM-DD')) fROM dual---获取指定日期月份的最后一天
select add_months(TRUNC(to_date('2023-11-15','YYYY-MM-DD'),'MM'),1) fROM dual---获取指定日期下个月的第一天
select last_day(add_months(to_date('2023-11-15','YYYY-MM-DD'),1)) fROM dual---获取指定日期下个月的最后一天
select TRUNC(to_date('2023-11-15','YYYY-MM-DD'),'YYYY') fROM dual---获取指定日期年份的第一天
select add_monyhs(TRUNC(to_date('2023-11-15','YYYY-MM-DD'),'YYYY'),12)-1 fROM dual---获取指定日期年份的最后一天
select to_char(to_date('2023-11-15','YYYY-MM-DD'),'d') fROM dual-----获取指定日期本周当中的第几天,周日代表1,周一代表2....
select to_char(to_date('2023-11-15','YYYY-MM-DD'),'dd') fROM dual----获取指定日期本月当中的第几天
select to_char(to_date('2023-11-15','YYYY-MM-DD'),'ddd') fROM dual---获取指定日期本年中的第几天
select to_char(to_date('2023-11-15','YYYY-MM-DD'),'w') fROM dual-----该月中第几个星期 --每年的1月1号至1月7号为第一周,以此类推,每年53周
select to_char(to_date('2023-11-15','YYYY-MM-DD'),'ww') fROM dual----该年中第几个星期 --每年的1月1号至1月7号为第一周,以此类推,每年53周
select to_char(to_date('2023-11-15','YYYY-MM-DD'),'day') fROM dual----获取指定日期是星期几
select to_char(to_date('2023-11-15','YYYY-MM-DD'),'month') fROM dual----获取指定日期是几月份
select to_char(to_date('2023-11-15','YYYY-MM-DD'), ‘Q’) from dual; --获取指定日期是第几季度
select to_char(to_date('2023-11-15','YYYY-MM-DD'), ‘iw’) from dual; --获取指定日期是第几周
select next_day(to_date('2023-11-15','YYYY-MM-DD'),'sunday')) from dual--根据指定的日期和传入的星期获取下周对应的星期
select extract(year/month/day from to_date('2023-11-15','YYYY-MM-DD')) from dual---提取指定日期的年月日
select mpnths_between(to_date('2023-11-15','YYYY-MM-DD'),to_date('2023-11-15','YYYY-MM-DD')) from dual
SELECT trunc( to_date( ‘2023-03-13’, ‘YYYY-MM-DD’ ), ‘iw’ ) FROM dual;--获取指定日期所在周的第一天
SELECT
TO_CHAR( trunc( SYSDATE, ‘iw’ ), ‘yyyy-MM-dd’ ),
TO_CHAR( trunc( SYSDATE, ‘iw’ ) + 1, ‘yyyy-MM-dd’ ),
TO_CHAR( trunc( SYSDATE,‘iw’ ) + 2, ‘yyyy-MM-dd’ ),
TO_CHAR( trunc( SYSDATE, ‘iw’ ) + 3, ‘yyyy-MM-dd’ ),
TO_CHAR( trunc( SYSDATE, ‘iw’ ) + 4, ‘yyyy-MM-dd’ ),
TO_CHAR( trunc( SYSDATE, ‘iw’ ) + 5, ‘yyyy-MM-dd’ ),
TO_CHAR( trunc( SYSDATE, ‘iw’ ) + 6, ‘yyyy-MM-dd’ )
FROM
DUAL--获取当前周所有日期
select to_date('2023-11-16','YYYY-MM-DD')-interval'1'year/month/day/hour/minute/second from dual---根据当前日期减去一年/月/日/时/分/秒