一、时间查询语句--SQLserver
1、查询日期时间
1)查询日期+时间,使用SQLserver内置函数GETDATE,返回当前日期和时间;
SELECT GETDATE(); --今天
SELECT GETDATE()-1;--昨天
SELECT DateAdd(YEAR, -1, GETDATE());--去年同一天
SELECT DateAdd(MONTH, -1, GETDATE());--上个月同一天
2)查询当前日期,使用CAST将当前日期和时间转换为日期类型;
SELECT CAST(GETDATE() AS DATE);--今日日期
SELECT CAST(GETDATE()-1 AS DATE);--昨日日期
SELECT CAST(DateAdd(YEAR, -1, GETDATE()) AS DATE);--去年同一日日期
SELECT CAST(DateAdd(MONTH, -1, GETDATE()) AS DATE);--上个月同一日日期
3)查询当前日期,使用CONVERT将当前日期和时间格式化为指定字符串
SELECT CONVERT(varchar(10),GETDATE(),120) ;--今日日期
SELECT CONVERT(varchar(10),GETDATE()-1,120);--昨日日期
SELECT CONVERT(varchar(10),DateAdd(YEAR, -1, GETDATE()),120);--去年同一日
SELECT CONVERT(varchar(10),DateAdd(MONTH, -1, GETDATE()),120);--去年同一日
4)查询年、月、日、周
SELECT YEAR(GETDATE());--当前年
SELECT MONTH(GETDATE());--当前月
SELECT DAY(GETDATE());--当前天
--使用DATEPART获取当前日期的年、月、日
SELECT DATEPART(YEAR,GETDATE());--当前年
SELECT DATEPART(MONTH,GETDATE());--当前月
SELECT DATEPART(DAY,GETDATE());--当前天
SELECT DATEPART(WEEK,GETDATE());--当前周,今年第几周
SELECT DATEPART(HOUR, GETDATE());--查询小时
2、查询天数
1)月份天数
SELECT 32-DAY(GETDATE()-DAY(GETDATE())+32);--当月天数
SELECT DAY(dateadd(month,1,'2023-08-01')-1);--月份天数
SELECT DATEPART(dayofyear,getDate());--今年第几天
--DATEDIFF() 函数返回两个日期之间的天数。不包含结束当天
SELECT DATEDIFF(day,'2023-01-01',getdate())
-- EOMONTH() 函数,返回包含指定日期所在月份的最后一天:
SELECT EOMONTH( '2023-12-01' );