最近專案用到一個按時間區間作為查詢條件進行查詢,我在MySQL中使用date函式加between、and方式進行篩選,但是加入時分秒之后選擇就不可以了具體如圖:請問有沒有大神了解這是什么情況啊,date函式是只關注時分秒嘛?

uj5u.com熱心網友回復:
剛剛上網查了一下MySQL中date函式詳解,發現date函式只提取日期部分。具體可參考這篇文章:https://www.jb51.net/article/142737.htmuj5u.com熱心網友回復:
MYSQL的官方免費手冊是最好的參考檔案。uj5u.com熱心網友回復:
說的是 當時沒有找官方檔案 直接百度搜了一下uj5u.com熱心網友回復:
drop table if exists `test`;
create table `test`(
`create_time` datetime
);
insert into `test` values('2018-11-22 14:14:34');
insert into `test` values('2018-11-22 14:14:49');
insert into `test` values('2018-11-22 14:18:40');
insert into `test` values('2018-11-22 14:30:31');
insert into `test` values('2018-11-22 14:32:57');
insert into `test` values('2018-11-23 14:54:36');
insert into `test` values('2018-11-24 16:27:15');
-- #以上為測驗資料 --
select * from test
where create_time between
date('2018-11-22 18:17:33')
and
DATE_ADD('2018-12-19 18:17:33',INTERVAL 1 DAY)
;
一般來說, 不應該在 where 后的欄位上加任何函式, 這樣會影響查詢效率。
where date(create_time) 的做法是錯誤的。
要包裝, 只能包裝后面的常量部分。
uj5u.com熱心網友回復:
create_time 欄位上面, 一般會加索引。但 date(create_time) 會使索引失效。
uj5u.com熱心網友回復:
后邊的時間,改成類似這個樣子。STR_TO_DATE('2018-01-02 03:04:05','%Y-%m-%d %H:%i:%s')
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/78259.html
標籤:MySQL
上一篇:從資料庫里獲取圖片
下一篇:MySQL的樹狀結構表如何求和?
