【问题标题】:Implement where condition varchar field in MySQL在 MySQL 中实现 where 条件 varchar 字段
【发布时间】:2019-12-27 11:57:57
【问题描述】:

我有一个包含如下字段值的用法表

id | page_open_time

1, 28 May 2019 08:39:11
2, 12 July 2019 18:39:11
3, 22 December 2019 11:39:11
4, 23 June 2019 12:39:11

现在我想获取 page_open_time 大于 2019 年 7 月 1 日的所有记录。为此,我在下面编写了此查询,但没有帮助。有什么办法,我可以做到吗?

 SELECT * FROM `usages` where page_open_time > '2019-07-01'

【问题讨论】:

  • 修复您的数据模型,以便将日期/时间值存储为 datetime 而不是字符串。
  • 你用的是什么数据库?
  • 这能回答你的问题吗? Mysql Compare two datetime fields
  • 我得到了答案

标签: mysql sql datetime


【解决方案1】:

您的日期不是有效的 MySQL DATETIME 格式,因此您需要在比较之前转换它们,使用 STR_TO_DATE:

SELECT *
FROM usages
WHERE STR_TO_DATE(page_open_time, '%d %M %Y %H:%i:%s') > '2019-07-01'

输出

id  page_open_time
2   12 July 2019 18:39:11
3   22 December 2019 11:39:11

Demo on dbfiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多