轉載:http://blog.chinaunix.net/uid-12427199-id-3437964.html
附加:http://www.w3school.com.cn/sql/func_datediff.asp
怎麼用SQL查詢昨天、今天、明天和本週的記錄?又怎麼用SQL查詢一天,三天,一週,一個月,更長一些——一個季度的記錄呢?本文中給出了一些方法。
SQL查詢今天的記錄:
- datediff(day,[Datetime],getdate())=0 把Datetime換爲你的相應字段;
SQL查詢昨天的記錄:
- datediff(day,[Datetime],getdate())=1 把Datetime換爲你的相應字段,getdate()-Datetime即爲時間差。
本月記錄:
- SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0
本週記錄:
- SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0
本日記錄:
- SELECT * FROM 表 WHERE datediff(day,[dateadd],getdate())=0
-
一天
- select * from T_news where datediff(day,addtime,getdate())=0
-
三天
- select * from T_news where datediff(day,addtime,getdate())<= 2 and datediff(day,addtime,getdate())>= 0
-
一週
- select * from T_news WHERE (DATEPART(wk, addtime) = DATEPART(wk, GETDATE())) AND (DATEPART(yy, addtime) = DATEPART(yy, GETDATE()))
-
注意:此時不能用 datediff 差值爲7,因爲,datediff只表示間隔數
一月
- select * from T_news WHERE (DATEPART(yy, addtime) = DATEPART(yy, GETDATE())) AND (DATEPART(mm, addtime) = DATEPART(mm, GETDATE()))
-
一季度
- select * from T_news where DATEPART(qq, addtime) = DATEPART(qq, GETDATE()) and DATEPART(yy, addtime) = DATEPART(yy, GETDATE())
希望以上這些方法,能給大家一些啓示。