2016-11-17 56 views
0

我有一個評論表,我在DATETIME字段中存儲發表評論的日期和時間。我想知道的是,如何在一天之內完成所有評論。顯然,評論可能在當天的任何時候發佈。如何按日期(使用DATETIME)字段選擇評論

到目前爲止,我能想到的最好的方法是使用BETWEEN 'YYYY-MM-DD 00:59:59' AND 'YYYY-MM-DD 23:59:59',其中兩個日期都是我想要的日期或LIKE 'YYYY-MM-DD%'

當然,還有比這更好的方法嗎?

非常感謝提前。

+0

本來應該' 'YYYY-MM-DD○點59分59秒' 與「YYYY-MM-DD 23之間:59:59''。對不起'布特dat! – thefuzzy0ne

+0

@CL。不幸的是,我看不到編輯按鈕。我認爲這與我的代表(或缺乏)有關。 – thefuzzy0ne

+0

@CL。哦,現在我明白了!全部呈灰色,難以辨認。非常感謝。一定花了3到4分鐘尋找那個。謝謝。 :) – thefuzzy0ne

回答

3

爲了讓所有的記錄,僅一天就可以使用日期()在你的查詢「其中」部分功能,這將有助於兩個目的:
- 從日期時間記錄
截斷時間部分 - 解析「YYYY-MM-DD」你想要的一天

這裏的價值,我們創建一個表2分的記錄,一個時間戳爲2007年1月1日,和另一個被今天的日期時間的時間戳。然後,我們選擇這兩個紀錄分別:

bash-3.2$ sqlite3 some.db 
SQLite version 3.8.10.2 2015-05-20 18:17:19 
Enter ".help" for usage hints. 
sqlite> create table myTable (txt varchar(25), timestamp DATETIME); 
sqlite> insert into myTable (txt, timestamp) Values ('asdf',datetime()); 
sqlite> insert into myTable (txt, timestamp) Values ('asdf-2','2007-01-01 10:00:00'); 
sqlite> select * from myTable where date(timestamp) = date('2007-01-01'); 
asdf-2|2007-01-01 10:00:00 
sqlite> select * from myTable where date(timestamp) = date(datetime()); 
asdf|2016-11-17 17:09:15 
sqlite> 
+0

啊哈!我試着用日期包裝列名,然後是列值。我從來沒有想過用這個日期包裝這個BOTH。真的非常感謝你! :) – thefuzzy0ne

相關問題