日期时间相关函数
日期字段获取年、月、日的三种方式
一、
年:year(日期字段)
月:month(日期字段)
日:day(日期字段)
二、
年:DATEPART(year, 日期字段) / DATENAME(year, 日期字段)
月:DATEPART(month, 日期字段) / DATENAME(year, 日期字段)
日:DATEPART(day, 日期字段) / DATENAME(year, 日期字段)
DATEPART(datepart,date)与DATENAME(datepart,date)函数的区别:
Datepart():返回代表指定日期的指定日期部分的整数
语法:Datepart(datepart,date) 返回类型:int
DateName():返回代表指定日期的指定日期部分的字符串
语法:DateName(datepart,date) 返回类型:nvarchar
三、
--字符串截取 返回 2023-08
SUBSTRING(expression, start, length)
例子:SUBSTRING(日期字段, 1, 7)
PS:第一种和第二种方式获取月和日返回的是8、9、10这种格式,个位数时不会补零。
获取当前日期函数
一、
--getdate()函数返回的格式是2023-08-17 22:08:28.450
select getdate()
--获取当前年月日 2023-08-17
select convert(varchar,getdate(),23)
select cast(getdate() as date)
--获取当前年月 2023-08
select convert(char(7),getdate(),20)
--获取当前年月日时分秒 2023-08-17 22:07:35
select CONVERT(varchar,getdate(),120)
--获取当前年、月、日
select datepart(year, getdate()) / datename(year, getdate())
select datepart(month, getdate()) / datename(month, getdate())
select datepart(day, getdate()) / datename(day, getdate())
根据日期判断季度
--根据日期判断季度 参数类型必须是yyyy-mm-dd 返回结果1、2、3、4
select DATENAME(QUARTER,'2021-04-14')
两个日期判断差值
--年、月、日差值
select datediff(year,'2004-09-01','2004-09-18')
select datediff(month,'2004-09-01','2004-09-18')
select datediff(day,'2004-09-01','2004-09-18')
一个日期相加或者相减一定天数获得新的日期
--与datepart用法一致 number 为整数表示往后加几天,负数表示往前减几天
DATEADD(year, number, date)
DATEADD(month, number, date)
DATEADD(day, number, date)