sql语句中的时间查询
一般來說,我們在mysql數據庫紀錄數據時間時,都會選擇datatime類型,這樣時間可以精確到秒。但隨之而來的一個問題是,當我們要取得某一段時間內的數據內容會有一些時間轉換上的麻煩,例如我們要取得2002年3月2日到2003年7月8日的這段時間的內容,我們第一個直覺就是應該將sql寫成下面的形式:
1.? ?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:
2.? select * from yourdb where to_days(sj)>=to_days('2002-3-2') and sj<= to_days('2003-7-8')(此種采用是時間格式的比較方式)
現在,我們所取得就是我們想要的結果了。
3.?? SELECT * FROM t_ads? a WHERE? TO_DAYS(a.endDate) >? TO_DAYS(2013-04-23)(時間沒有用單引號擴住, 語法上沒有錯,但是查詢的內容不對)
綜述:處理時間的字段的時候 統一用單引號擴住, 之后再用to_days處理一下,即可。(第二中方式)
總結
以上是生活随笔為你收集整理的sql语句中的时间查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到捡珍珠是什么征兆
- 下一篇: 有源代码的iphone项目