我需要比较MySQL中的日期,忽略DateTime列中的时间部分.我try 了以下SQL.

SELECT * FROM order_table where order_date=date_format('2012-05-03', '%Y-%m-%d');

即使MySQL表中有日期2012-05-03 10:16:46,它也不会检索任何行.在MySQL中比较日期时,如何忽略DateTime字段中的时间部分?

推荐答案

您可以使用DATE功能:

SELECT col1, col2, ..., coln
FROM order_table
WHERE date(order_date) = '2012-05-03'

但是,如果您的表很大,并且索引为order date,那么这会更有效:

SELECT col1, col2, ..., coln
FROM order_table
WHERE order_date >= '2012-05-03'
AND order_date < '2012-05-04'

Mysql相关问答推荐

透视从另一个表添加信息的查询

如何防止程序中计数器出错

基于多行从表中 Select

MySQL全文索引和不区分大小写搜索带来的挑战

如何在 MySQL Workbench 中设置 DateTime 列的默认值?

SQL:如何为给定组中的所有记录 Select 一列与另一列不匹配的位置

了解 Spring 和数据库级别的事务?

处理 Visits 表中数百万行的最佳方法是什么?

保存SQL查询的中间结果

如何在任何连续范围内获得最大值

我在查询中没有得到正确的结果

Over() 函数不覆盖表中的所有行

SUBSTRING_INDEX 获取第 n 个值

MySQL:如何多次加入同一张表?

何时在 mysql 中使用 TEXT 而不是 VARCHAR

utf8mb4_unicode_ci 与 utf8mb4_bin

'LIKE ('%this%' OR '%that%') and something=else' 不起作用

匹配 IN 子句中的所有值

设计用户角色和权限系统的最佳实践?

MySQL中的base64编码