【问题标题】:MYSQL Date query syntax not properly formattedMYSQL 日期查询语法格式不正确
【发布时间】:2015-07-06 03:28:15
【问题描述】:

这是我的专栏的样子

  deeday
 "06/07/15"
 "02/07/15"
 "06/07/15"
 "04/07/15"
 "06/07/15"

以下查询运行良好

  SELECT * FROM Bango ORDER BY STR_TO_DATE( `deday` , '%y/%m/%d' )

我在以下查询中缺少什么以使其正常工作。

 SELECT * FROM `Bango` WHERE STR_TO_DATE( `deday` , '%y/%m/%d' ) = DATE_FORMAT(NOW(),'%d/%m/%y')

谢谢

【问题讨论】:

    标签: mysql sql validation date syntax


    【解决方案1】:

    您的查询可以按以下方式工作-

    SELECT * FROM `Bango` WHERE STR_TO_DATE( `deday` , '%d/%m/%y' ) = curdate();
    

    您可以按以下方式使用,但它会破坏性能,因此您可以从您的字段中删除一次-

    SELECT * FROM 
    `Bango` 
    WHERE STR_TO_DATE( replace(`deday`,'"','') , '%d/%m/%y' ) = curdate();
    

    【讨论】:

    • 感谢 Zafar,但奇怪的是没有错误,两个查询仍然没有结果。我应该看什么?
    • Even 'code' SELECT * FROM football ORDER BY STR_TO_DATE(deday, '%d/%m/%y' 'code' 有效
    • deday 列的数据类型是什么
    • 相同结果 MySQL 返回一个空结果集(即零行)。 (查询耗时 0.0024 秒)。
    • 我已经检查过了,它工作正常,请检查你的日期字符串是否有空格等,然后你可以使用修剪功能。
    【解决方案2】:

    SQL LIKE Statement on a DateTime Type

    如果列类型是日期时间,则 LIKE 运算符在不将值即时转换为 varchar 字符串的情况下不起作用。

    【讨论】:

    • 感谢提示如何在查询中使用 = 运算符?
    • 忘了说数据库中的格式是varchar。
    猜你喜欢
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    相关资源
    最近更新 更多