mysql - 如何将日期字符串与数据库中的日期时间列进行比较

标签 mysql sql database date type-conversion

我有很多这样的日子:

Array
(
    [0] => "18/09/2019"
    [1] => "19/09/2019"
    [2] => "20/09/2019"
    [3] => "21/09/2019"
    [4] => "22/09/2019"
    [5] => "23/09/2019"
    [6] => "24/09/2019"
)

我的数据库中包含一个 date 列,其中包含 DATETIME 值,例如:2019-09-18 00:00:00

现在我想从我的 orders 表中选择所有内容,例如 date = 18/09/2019

我怎样才能做到这一点?

我尝试了以下操作,但这给了我一个语法错误:

SELECT * FROM `orders` WHERE date = CONVERT(DATETIME, '24/09/2019')

我使用的是 MYSQL。

最佳答案

MySQL 的答案:

您必须使用 DATE() 函数DATETIME 列值转换为 DATE 值,然后使用 DATE() 函数将它们与数组值进行比较code>STR_TO_DATE 具有适当映射的函数:

SELECT * 
  FROM orders 
 WHERE DATE(date) = STR_TO_DATE(array_member, '%Y-%m-%d')

关于mysql - 如何将日期字符串与数据库中的日期时间列进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58078291/

相关文章:

php - mysql/php/javascript/css 日历建议

sql - 启用/禁用/删除数据库行及其引用的最佳实践?

sql - 如何获得表中的第n行,或者如何将表的子集分成大小相等的集合或行?

mysql - 表中的列数是否会影响没有索引的表上的 count(*) 查询的性能?

php - MYSQL可自定义加入和选择

php - 如何使用 PHP 在动态生成的 MS Excel 文件中插入/嵌入图像?

mysql - 如何优化这个 MySQL 查询/结构?

数据库需求关系

mysql - 表 1 与表 2 没有关联

mysql - 如何计算每行的2个时间戳之间的总差