Oracle 分别取日期的年月日

目录

一、获取目标数据格式

二、SQL语句

三、运行结果

四、应用


 

一、获取目标数据格式

        日期为DATE格式 2022-01-31,

        代码中以date'2022-01-31'将2022-01-31转换为数据库中date格式,

        1、分别取   年份2022   月份01    日31

        2、取上月末日期  2021-12-31

        3、取当月末日期 2022-01-31

二、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格式

三、运行结果如下:

Oracle 分别取日期的年月日_第1张图片

四、应用

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() 取年月日

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;

 

你可能感兴趣的:(SQL,PLSQL,数据库,oracle,sql)