【问题标题】:How to write query for date exact match in mysql如何在mysql中编写日期精确匹配查询
【发布时间】:2022-01-10 12:10:41
【问题描述】:

我想知道如何查询显示列表

如果用户的日期与表格中的日期dob匹配

用户的日期格式始终为02 Oct 1992 dd mm yyyy

如何转换用户日期格式(yyyy mm dd)并检查mysql查询中的dobmatches

我在表格中有日期

用户日期 = 1992 年 10 月 2 日

user dob
xyz  1992-10-02
abc  1986-02-06

SELECT * FROM datetable WHERE DATE(str_to_date(userdate, '%Y-%m-%d')) = datetable.dob


目前查询不工作

【问题讨论】:

  • 请为两个日期列添加示例数据。
  • @TimBiegeleisen 感谢您的回复,上面显示的dob 是日期列,其他是日期字符串userdate=02 Oct 1992,我需要编写查询日期列和日期字符串是否完全匹配,(对于日期字符串我不知道如何转换为格式 yyyy-mm-dd 并检查 dob)
  • str_to_date 需要在一个模式中转换 from,而不是转换 to。而不是date_format()

标签: mysql date select where-clause str-to-date


【解决方案1】:

这应该做你想做的:

SELECT *
FROM datetable
WHERE dob = STR_TO_DATE(userdate, "%d %b %Y");

userdate 的日期解析示例:

SELECT STR_TO_DATE("02 Oct 1992", "%d %b %Y") as date;
+------------+
| date       |
|------------|
| 1992-10-02 |
+------------+
1 row in set
Time: 0.005s

【讨论】:

  • 什么意思?
  • 谢谢,但喜欢我想做的第一个查询,但它不起作用,可以提供帮助
  • SELECT * FROM datetable WHERE dob = STR_TO_DATE(userdate, "%d %b %Y"); 这个查询不起作用
  • 您需要将userdate替换为日期,例如02 Oct 1992
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-02
  • 1970-01-01
  • 2021-01-15
相关资源
最近更新 更多