1、获得根据时间获得该季度所在的月份:
SELECT to_char(add_months(TRUNC(to_date('2020-07-01 00:00:00','yyyy-mm-dd hh24:mi:ss'), 'Q'), +3)-1, 'YYYYMM') FROM dual; --根据指定日期获取该日期季度的月份
如下图所示:
![]()
2、根据时间获得该时间所属的上半年或下半年所在的月份:
select case when to_char(to_date('2020-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),'mm')<7 then to_char(to_date('2020-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),'YYYY')||'06' else to_char(to_date('2020-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),'YYYY')||'12' end from dual;
如下图所示:
![]()
3、根据根据时间获得该时间所属的年:
SELECT to_char(to_date('2020-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss'), 'yyyy') FROM dual; --根据指定日期获取该日期年
如下图所示:
![]()
4、根据当前月获取上个月的月份
select to_char(trunc(add_months(to_date('202003','yyyymm'),-1),'mm'),'yyyymm') from dual;
如下图所示:
![]()
SELECT
to_char(to_date('2020-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss'), 'yyyy'),--获得当前时间的年
to_date(to_char(to_date('2020-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss'), 'yyyy')||'-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),--获得当前年的1月1号
to_date(to_char(add_months(to_date('2020-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),-12), 'yyyy')||'-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),--获得去年的1月1号
to_char(add_months(to_date('2020-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),-12), 'yyyy-mm-dd hh24:mi:ss'),--获得去年同期时间
to_char(to_date('2020-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss'), 'mm')--获得当前时间的月
FROM dual;
如:

本文介绍了如何使用SQL来处理日期和时间数据,包括获取指定日期的季度月份、判断时间属于上半年还是下半年、提取年份、获取上个月的月份等实用技巧。
891

被折叠的 条评论
为什么被折叠?



