大家好,如何獲取45天內過期的數據..?
我有一個SQL表和字段該表是
id
name
expireydate
現在我想只有那些哪一個是在45天或30天期滿的記錄。
我該如何處理sql查詢? 我沒有更多的exp與sql。
由於提前,
大家好,如何獲取45天內過期的數據..?
我有一個SQL表和字段該表是
id
name
expireydate
現在我想只有那些哪一個是在45天或30天期滿的記錄。
我該如何處理sql查詢? 我沒有更多的exp與sql。
由於提前,
如果您使用的是mysql,那麼請嘗試DATEDIFF。
45天
select * from `table` where DATEDIFF(now(),expireydate)<=45;
30天
select * from `table` where DATEDIFF(now(),expireydate)<=30;
在oracle中-
會做的伎倆,而不是DATEDIFF和SYSDATE
代替now()
[不知道]
在sql server中,DateDiff是完全不同的,你必須提供兩個日期之間取出差異的單位。
DATEDIFF(datepart,startdate,enddate)
獲得當前日期嘗試這一個:CURRENT_TIMESTAMP
或GETDATE()
或{fn NOW()}
您可以使用一個簡單的SELECT * FROM yourtable WHERE expireydate < "some formula calculating today+30 or 45 days"
。
簡單的比較將在那裏工作,棘手的部分是寫這最後一點關於你想比較的日期。它將取決於您的環境以及如何將「expireydate」存儲在數據庫中。
試試下面: -
SELECT * FROM MYTABLE WHERE (expireydate in days) < ((CURRENTDATE in days)+ 45)
不要直接執行!根據您的數據庫,以天爲單位獲取日期的方式會有所不同。去看你的數據庫手冊或請確定你的數據庫是什麼。
您正在使用什麼數據庫?日期/時間操作功能往往不是很便攜。 – Mat 2011-05-18 09:33:14