Oracle如何用日期函数取到上个季度的第一日和最后一日

  1. -- 本季度第一天   
  2. SELECT to_char(TRUNC(SYSDATE, 'Q'), 'YYYY-MM-DD') FROM dual;   
  3.   
  4. -- 上个季度最后一天(可以用本季度第一天减去1得到)   
  5. SELECT to_char(TRUNC(SYSDATE, 'Q') - 1, 'YYYY-MM-DD') FROM dual;   
  6.   
  7. -- 上个季度第一天(本季度第一天 减 3个月)   
  8. SELECT to_char(add_months(TRUNC(SYSDATE, 'Q'), -3), 'YYYY-MM-DD')   
  9.   FROM dual;   
  10.   
  11. -- 上个季度第一天(本季度减一个月之后的月份的最后一天)   
  12. select to_char(last_day(add_months(trunc(sysdate, 'Q'), -1)), 'yyyy-mm-dd')   
  13.   from dual   
  14.   
  15. --1: 取得当前日期是本月的第几周   
  16. select to_char(sysdate,'YYYYMMDD    W    HH24:MI:SS')   from   dual;   
  17. select to_char(sysdate, 'W') from dual;   
  18.   
  19. --2:取得当前日期是一个星期中的第几天,注意星期日是第一天   
  20. select sysdate, to_char(sysdate, 'D') from dual;   
  21. --类似:   
  22. select to_char(sysdate, 'yyyy') from dual; --当前年   
  23. select to_char(sysdate, 'Q' ) from dual; --当前季度   
  24. select to_char(sysdate, 'mm') from dual; --当前月   
  25. select to_char(sysdate, 'dd') from dual; --当前日   
  26.   
  27. --3:取当前日期是星期几的中文显示:   
  28. select   to_char(sysdate, 'day')   from   dual;   
  29.   
  30. --4:如果一个表在一个date类型的字段上面建立了索引,如何使用   
  31. alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'   
  32.   
  33. --5: 得到当前的日期   
  34. select sysdate from dual;   
  35.   
  36. --6: 得到当天凌晨0点0分0秒的日期   
  37. select to_char(trunc(sysdate), 'yyyymmdd hh:mi:ss' ) from dual;   
  38.   
  39. -- 得到这天的最后一秒   
  40. select trunc(sysdate) + 0.99999 from dual;   
  41.   
  42. -- 得到小时的具体数值   
  43. select trunc(sysdate) + 1 / 24 from dual;   
  44. select trunc(sysdate) + 7 / 24 from dual;   
  45.   
  46. --7:得到明天凌晨0点0分0秒的日期   
  47. select trunc(sysdate + 1) from dual;   
  48. select trunc(sysdate) + 1 from dual;   
  49.   
  50. --8: 本月一日的日期   
  51. select trunc(sysdate, 'mm') from dual;   
  52.   
  53. --9:得到下月一日的日期   
  54. select add_months(trunc(sysdate, 'mm'), 1) from dual;   
  55. select trunc(add_months(sysdate, 1), 'mm') from dual;   
  56.   
  57. -- 10:返回当前月的最后一天?   
  58. select last_day(sysdate) from dual;   
  59. select last_day(trunc(sysdate)) from dual;   
  60. select trunc(last_day(sysdate)) from dual;   
  61. select trunc(add_months(sysdate, 1), 'mm') - 1 from dual;   
  62.   
  63. --11: 得到一年的第一天   
  64. select trunc(sysdate, 'y') from dual   
  65.   
  66. --11: 得到一年的每一天   
  67. select trunc(sysdate, 'yyyy') + rn - 1 date0   
  68.   from (select rownum rn from all_objects where rownum < 366) t;   
  69.   
  70. --12:今天是今年的第N天   
  71. SELECT TO_CHAR(SYSDATE, 'DDD') FROM DUAL;   
  72.   
  73. --13:如何在给现有的日期加上2年   
  74. select add_months(sysdate, 24) from dual;   
  75.   
  76. --14:判断某一日子所在年分是否为润年   
  77. select last_day(trunc(sysdate, 'yyyy') + 31) from dual   -- 通过一年的第一天加上31天到2月,然后取2月最后一天   
  78. select decode(to_char(last_day(trunc(sysdate, 'y') + 31), 'dd'),   
  79.               '29',   
  80.               '闰年',   
  81.               '平年')   
  82.   from dual;   
  83.   
  84. --15:判断两年后是否为润年   
  85. select decode(to_char(last_day(trunc(add_months(sysdate, 24), 'y') + 31), 'dd'),   
  86.               '29',   
  87.               '闰年',   
  88.               '平年')   
  89.   from dual;   
  90.   
  91. --16:得到日期的季度   
  92. select trunc(sysdate, 'mi') from dual ;   
  93. select to_number(to_char(sysdate,'mm')) from dual;   
  94. select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;   
  95. select to_char(sysdate, 'Q') from dual;   
  96.   
  97. --No17:返回某个月的最后一天   
  98. select to_char(last_day(sysdate), 'dd') from dual  
  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓