mysql數據庫取得某一段時間內的紀錄
一般來說,我們在mysql數據庫紀錄數據時間時,都會選擇datatime類型,這樣時間可以精確到秒。但隨之而來的一個問題是,當我們要取得某一段時間內的數據內容會有一些時間轉換上的麻煩,例如我們要取得2002年3月2日到2003年7月8日的這段時間的內容,我們第一個直覺就是應該將sql寫成下面的形式:
select * from yourdb where sj>='2002-3-2' and sj<= '2003-7-8'
這樣以來,我們取得數據內容就是2002年3月2日0點以后到2003年7月8日0點(也就是7月7號12點之前)之間的內容,這個當然不是我們想要的,所以需要使用mysql的時間函數to_days()來寫這個sql:
select * from yourdb where to_days(sj)>=to_days('2002-3-2') and sj<= to_days('2003-7-8')
現在,我們所取得就是我們想要的結果了。
比如我要取這樣的廣告位 :廣告位id為1,并且時間上前后限定;
select * from t_ads a where a.adsPosId = 1 and TO_DAYS(NOW()) >= TO_DAYS(a.beginDate)
and TO_DAYS(NOW()) < TO_DAYS(a.endDate)
bitsCN.com聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com