我在 MySQL 中创建了这个表:
CREATE TABLE events (
id TINYINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR ( 15 ) NOT NULL,
description TEXT NOT NULL,
_type VARCHAR ( 15 ) NOT NULL,
date_time DATETIME NOT NULL,
location VARCHAR ( 15 ) NOT NULL
)ENGINE = INNODB;
然后我在表中插入了一些记录,其中一条记录的 DATETIME 字段为 2014-04-04 00:00:00。我想要的是通过它的 DATETIME 字段搜索该记录。例如:
SELECT * FROM events WHERE date_time = 2014-04-04;
但是这个查询返回:
Empty set, 1 warning (0.00 sec)
为什么这不起作用?
最佳答案
您需要使用DATE()
获取日期时间字符串的日期部分进行比较(并在日期字符串周围加上引号):
SELECT * FROM events WHERE DATE(date_time) = '2014-04-04';
关于MySQL 按 DATETIME 在表中搜索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22990497/