1. 程式人生 > >sql語句根據日期查詢,本週,本月,本年,今日相關統計

sql語句根據日期查詢,本週,本月,本年,今日相關統計

昨天

select * from tb where datediff(day, 時間欄位 ,getdate()) = 1

今天

select * from tb where datediff(day, 時間欄位 ,getdate()) = 0

本週

select * from tb where datediff(week, 時間欄位 ,getdate()) = 0

上週

select * from tb where datediff(week, 時間欄位 ,getdate()) = 1

下週

select * from tb where datediff(week, 時間欄位 ,getdate()) = -1

 

上月

Select * From TableName Where DateDiff(month, DateTimCol, GetDate()) = 1

本月

Select * From TableName Where DateDiff(month, DateTimCol, GetDate()) = 0

下月

Select * From TableName Where DateDiff(month, GetDate(), DateTimCol ) = -1

本年

Select * From TableName Where DateDiff(year, GetDate(), DateTimCol ) = 0

 

昨天:dateadd(day,-1,getdate())

明天:dateadd(day,1,getdate())

上月:month(dateadd(month, -1, getdate()))

本月:month(getdate())

下月:month(dateadd(month, 1, getdate()))

 

昨天 

Select * From TableName Where DateDiff(dd, DateTimCol, GetDate()) = 1

明天

Select * From TableName Where DateDiff(dd, GetDate(), DateTimCol) = -1

最近七天

Select * From TableName Where DateDiff(dd, DateTimCol, GetDate()) <= 7

隨後七天

 

當前年

select  提出日期, datepart(year,getdate()) as  當前年 from 供方資料表

前一年

select  提出日期, datepart(year,getdate())-1 as  當前年 from 供方資料表

後一年

select  提出日期, datepart(year,getdate())+1 as  當前年 from 供方資料表

 

SQL 日期函式
1.   當前系統日期、時間
     select getdate()  

2. dateadd   在向指定日期加上一段時間的基礎上,返回新的 datetime 值
    例如:向日期加上2天
    select dateadd(day,2,'2004-10-15′)   –返回:2004-10-17 00:00:00.000

3. datediff 返回跨兩個指定日期的日期和時間邊界數。
    select datediff(day,'2004-09-01′,'2004-09-18′)    –返回:17

4. datepart 返回代表指定日期的指定日期部分的整數。
   SELECT DATEPART(month, '2004-10-15′)   –返回 10

5. datename 返回代表指定日期的指定日期部分的字串
    SELECT datename(weekday, '2004-10-15′)   –返回:星期五

6. day(), month(),year() –可以與datepart對照一下

select 當前日期=convert(varchar(10),getdate(),120)
,當前時間=convert(varchar(8),getdate(),114)

select datename(dw,'2004-10-15′)

select 本年第多少周=datename(week,'2004-10-15′)
       ,今天是周幾=datename(weekday,'2004-10-15′)

 

舉例:
1.GetDate() 用於sql server :select GetDate()

2.DateDiff('s','2005-07-20′,'2005-7-25 22:56:32′)返回值為 514592 秒
DateDiff('d','2005-07-20′,'2005-7-25 22:56:32′)返回值為 5 天

3.DatePart('w','2005-7-25 22:56:32′)返回值為 2 即星期一(週日為1,週六為7)
DatePart('d','2005-7-25 22:56:32′)返回值為 25即25號
DatePart('y','2005-7-25 22:56:32′)返回值為 206即這一年中第206天
DatePart('yyyy','2005-7-25 22:56:32′)返回值為 2005即2005年