2011-05-18 16 views
0

大家好,如何獲取45天內過期的數據..?

我有一個SQL表和字段該表是

id 
name 
expireydate 

現在我想只有那些哪一個是在45天或30天期滿的記錄。

我該如何處理sql查詢? 我沒有更多的exp與sql。

由於提前,

+1

您正在使用什麼數據庫?日期/時間操作功能往往不是很便攜。 – Mat 2011-05-18 09:33:14

回答

1

如果您使用的是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_TIMESTAMPGETDATE(){fn NOW()}

0

您可以使用一個簡單的SELECT * FROM yourtable WHERE expireydate < "some formula calculating today+30 or 45 days"

簡單的比較將在那裏工作,棘手的部分是寫這最後一點關於你想比較的日期。它將取決於您的環境以及如何將「expireydate」存儲在數據庫中。

0

試試下面: -

SELECT * FROM MYTABLE WHERE (expireydate in days) < ((CURRENTDATE in days)+ 45) 

不要直接執行!根據您的數據庫,以天爲單位獲取日期的方式會有所不同。去看你的數據庫手冊或請確定你的數據庫是什麼。

相關問題