之前說過mysql的時間欄位有date,time,datetime,timestamp等,在實際查詢時間段時,我們經常將整個字段儲存進去,例如像2011-03-10 00:00:00,也有分開儲存年,月,日的方式,或者使用right()等字元擷取函式來進行查詢操作。anyway,我們都是要對一段時間進行查詢。筆者最近在做遊戲道具購買方面的查詢,按照需要,我們要按照周的方式,查詢一周的道具銷售量。使用的方式為下面的這種:
select count(*) from table where buytime>='2011-5-31 00:00:00' and buytime<='2011-6-6 23:59:59' group by itemname
這是一種比較傳統的方式,需要我們自己指定開始和結束時間,經常使用》,between,
unix時間戳
每個時間都對應了乙個唯一的unix時間戳,時間從1970-1-1 00:00:00開始計時,每過一秒,就加1,在mysql中有傳統時間函式和unix時間戳的互換函式。unix_timestamp(datetime) 和from_unixtime(unixtime)
mysql> select unix_timestamp('2011-8-2 8:50:34');
| unix_timestamp('2011-8-2 8:50:34') |
| 1312246234 |
1 row in set (0.03 sec)
mysql> select from_unixtime(1312246234);
| from_unixtime(1312246234) |
| 2011-08-02 08:50:34 |
1 row in set (0.00 sec)
如此一拉,我們把原來的時間字段,替換成現在unix的整型字段,通過對整數比較,可以大大提高效率,查詢時,我們把開始結束時間轉換成unix時間戳。
select count(*) from table where buytime>=unix_stamp('2011-5-31 00:00:00') and buytime<=unix_stamp('2011-6-6 23:59:59') group by itemname.
不過這種方式,比較麻煩的就是查詢之後需要將時間翻轉一次。
mysql日期查詢 mysql 查詢日期
檢視本月資料 select from content publish where date format publish time,y m date format date sub curdate interval 0 month y m 檢視上個月資料 select from content pu...
mysql 日期查詢 Mysql日期查詢list
當前week的第一天 select date sub curdate interval weekday curdate 1 day 當前week的最後一天 select date sub curdate interval weekday curdate 5 day 前一week的第一天 select...
mysql關於日期 MySQL關於日期的查詢sql
查詢今天的記錄 select from wmacc.cash trade record where to days create date to days now select from wmacc.cash trade record where date format create date,y ...