目录
一、获取目标数据格式
日期为DATE格式 2022-01-31,
代码中以 date'2022-01-31' 将 2022-01-31 转换为数据库中date格式,
1、分别取 年份2022 月份01 日31 (字符串类型)
2、取上月末日期 2021-12-31(date类型)
3、取当月末日期 2022-01-31(date类型)
二、SQL语句
select TO_CHAR(date'2022-01-31','YYYY') as YEAR --取年
,TO_CHAR(date'2022-01-31','MM') as MONTH --取月份
,TO_CHAR(date'2022-01-31','DD') as DAY --取日
,TRUNC(date'2022-01-31','MM')-1 AS last_month_end --取上月末
,ADD_MONTHS(trunc(date'2022-01-21','MM')-1, 1) as Month_end --取当月末
from dual; --date'2022-01-31'将2022-01-31转换为数据库中date格式
三、运行结果如下:
四、应用
1、取表中每月前3日数据
select * from table1 t
where to_char(t.date,'DD')<='03';
2、取表中每月末数据
select * from table1 t
where t.date=ADD_MONTHS(trunc(t.date,'MM')-1, 1);
3、取每月初数据
select * from table1 t
where t.date=TRUNC(date'2022-01-31','MM');
4、取上月末数据
SELECT * FROM TABLE1 T
WHERE T.DATE1 in (select TRUNC(T.DATE1,'MM')-1 from TABLE1 );
五、附:extract() 取年月日
第二种方法:以extract()函数同样可以实现取年月日
select
extract(year from date'2022-01-31') as 年
,extract(month from date'2022-01-31')) as 月
,extract(day from date'2022-01-31')) as 天
from dual;