【问题标题】:Select date returning incorrect values? MySQL选择返回错误值的日期? MySQL
【发布时间】:2012-06-06 08:42:54
【问题描述】:

非常非常简单的查询如下:

select distinct start_date from calls_list where start_date >=  '06/06/2012 00:00:00';

返回

06/06/2012 09:27:40
06/06/2012 09:28:08
06/06/2012 09:28:18
06/06/2012 09:29:18
31/05/2012 07:02:46
31/05/2012 07:04:22
31/05/2012 07:04:35
31/05/2012 07:08:16

我正在摸不着头脑...有什么想法吗?我是 MSSQL 背景的,所以可能是 MySQL 处理日期和时间的方式不同?

【问题讨论】:

  • start_date 的数据类型是什么?我希望是DATETIME,而不是VARCHAR
  • 我正在尝试解决有人交给我的问题,所以我必须检查一下。这是一种非常复杂的方法,将报告导出为 CSV,然后使用 PHP 脚本导入 MySQL。报告中的日期格式是 dd/mm/yyyy hh:mm:ss,因此必须效仿(或者这可能是问题所在)
  • 列的数据类型是什么?您可以通过运行DESCRIBE calls_list 查询来检查这一点。顺便说一句,无论数据库背景如何,日期都应存储为日期并在插入/选择时进行转换。
  • 看起来好像是这么回事。似乎 CSV 导入器在处理文本以外的东西时相当痛苦,所以我将尝试使用 str_to_date 函数,看看我是否有运气!

标签: mysql datetime date


【解决方案1】:

似乎start_dateDATETIME 字段。每一行都是不同的 - 相同的日期,但不同的时间。我建议:

select distinct DATE(start_date) from calls_list where start_date >= '06/06/2012 00:00:00';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多