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)