MySQL 按 DATETIME 在表中搜索记录

标签 mysql datetime

我在 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/

相关文章:

mysql - 当 table1 结果不匹配时连接 table2

mysql - 如何在 MySQL 中将时间戳日期与仅日期参数进行比较?

ruby - Rails 获取没有日期的当前时间

php - laravel 中针对特定格式的 TIme 格式验证

python - 将多个 CSV 字段导入一个 MySQL 字段

php - mysql 无法识别文本和数字组合

Java,如何在考虑 DST 的同时减去日期对象

javascript - 在 codeigniter 中查找数据库中的两个日期时间差异

ruby-on-rails - FactoryGirl 时间和日期时间问题

mysql - 在 MySQL 的 jdbcTemplate 调用中添加字符串作为查询的一部分