我有一個評論表,我在DATETIME字段中存儲發表評論的日期和時間。我想知道的是,如何在一天之內完成所有評論。顯然,評論可能在當天的任何時候發佈。如何按日期(使用DATETIME)字段選擇評論
到目前爲止,我能想到的最好的方法是使用BETWEEN 'YYYY-MM-DD 00:59:59' AND 'YYYY-MM-DD 23:59:59'
,其中兩個日期都是我想要的日期或LIKE 'YYYY-MM-DD%'
。
當然,還有比這更好的方法嗎?
非常感謝提前。
我有一個評論表,我在DATETIME字段中存儲發表評論的日期和時間。我想知道的是,如何在一天之內完成所有評論。顯然,評論可能在當天的任何時候發佈。如何按日期(使用DATETIME)字段選擇評論
到目前爲止,我能想到的最好的方法是使用BETWEEN 'YYYY-MM-DD 00:59:59' AND 'YYYY-MM-DD 23:59:59'
,其中兩個日期都是我想要的日期或LIKE 'YYYY-MM-DD%'
。
當然,還有比這更好的方法嗎?
非常感謝提前。
爲了讓所有的記錄,僅一天就可以使用日期()在你的查詢「其中」部分功能,這將有助於兩個目的:
- 從日期時間記錄
截斷時間部分 - 解析「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>
啊哈!我試着用日期包裝列名,然後是列值。我從來沒有想過用這個日期包裝這個BOTH。真的非常感謝你! :) – thefuzzy0ne
本來應該' 'YYYY-MM-DD○點59分59秒' 與「YYYY-MM-DD 23之間:59:59''。對不起'布特dat! – thefuzzy0ne
@CL。不幸的是,我看不到編輯按鈕。我認爲這與我的代表(或缺乏)有關。 – thefuzzy0ne
@CL。哦,現在我明白了!全部呈灰色,難以辨認。非常感謝。一定花了3到4分鐘尋找那個。謝謝。 :) – thefuzzy0ne