SQL学习 | 用SQL进行日期截取和日期加减

一、将默认日期格式'yyyy-MM-dd HH:mm:ss'截取成年、月、日、时、分、秒:

1.EXTRACT

如输入SELECT CURRENT_TIMESTAMP;获取当前时间‘2019-08-16 15:21:28.413’,使用EXTRACT截取后获得的是数字格式的年月日等。

SELECT CURRENT_TIMESTAMP,
       EXTRACT(YEAR FROM CRRENT_TIMESTAMP) AS year,
       EXTRACT(MONTH FROM CRRENT_TIMESTAMP) AS month,
       EXTRACT(DAY FROM CRRENT_TIMESTAMP) AS day,
       EXTRACT(MINUTE FROM CRRENT_TIMESTAMP) AS minute,
       EXTRACT(SECOND FROM CRRENT_TIMESTAMP) AS second;

2. select  year/month/day/hour/minute/second/week of year

如,select year('2017-02-08 11:15:50'),month('2017-02-08 11:15:50'),day('2017-02-08 11:15:50'),hour('2017-02-08 11:15:50'),minute('2017-02-08 11:15:50'),second('2017-02-08 11:15:50'),weekofyear('2017-02-08 11:15:50');

 返回的是 2017、2、8、11、15、50、6

3. to_date

select to_date('2017-02-08 11:15:50'); 截取指定日期时间中的日期。返回 2017-02-08

4.datepart(datepart, date)

datepart 参数可以是下列的值:

SQL学习 | 用SQL进行日期截取和日期加减_第1张图片

如,select datepart(mm, '2019-12-08 12:24:56') 返回的结果是 12

 

二、将字符串格式的时间截取成指定日期:substring

利用SUBSTRING截取的日期一般是字符串格式

SUBSTRING(‘20190908’,0,4) 结果为2019,截取获得是字符串格式的年月日等

三、日期的增减

1.DATEDIFF(datepart,startdate,enddate)

datepart的格式如下:

SQL学习 | 用SQL进行日期截取和日期加减_第2张图片

SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate   返回的是1

2.DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart可以是dd, d等缩写格式也可以是day,week全称

select dateadd(day, 10,'2019-06-15') 返回的是'2019-06-25

3.DATE_SUB(date,interval expr type)

date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。

type 参数可以是下列值:

SQL学习 | 用SQL进行日期截取和日期加减_第3张图片

如,select datesub('2019-06-15', interval 2 day) 返回的是2019-06-13

 

你可能感兴趣的:(SQL学习)