【问题标题】:MySQL CURDATE() function sometimes gives result, but sometimes doesn't show recordsMySQL CURDATE() 函数有时会给出结果,但有时不显示记录
【发布时间】:2018-04-13 03:28:01
【问题描述】:

这是我要获取记录的表:

标志为零,日期为当前日期,如您所见:

仍然没有显示记录。

有时它会起作用,但大多数情况下它不起作用。请指导我。

【问题讨论】:

  • 这可能是由于时区设置 - 例如CURDATE 返回的日期早于您的预期
  • 运行此查询SELECT CURDATE() 进行检查。
  • 如果您能给我们一个使用sqlfiddle.com 的表格示例,让我们自己尝试一些查询,那就太好了!
  • =s 还是-s?您可以将代码添加到问题中吗?您也不需要date 函数,因为您的列已经是date
  • 在 where 条件下从 '0' 中删除引号后尝试。

标签: php mysql sql database codeigniter


【解决方案1】:

查看CURDATE() 的文档,您似乎将其作为字符串值取回。尝试以下查询:

SELECT `id`, `receiver_phone`, `sms_content` FROM `sms_history` WHERE DATE(`created_at`) = DATE(CURDATE()) and `send_flag`=0 LIMIT 100

【讨论】:

  • 那些 ' 引号应该是 ` 引号(除了 0 附近的那些,根本不应该存在)。此查询不会按原样工作。
  • 我认为 0 周围的引号无论如何都会起作用。很确定它无论如何都会将其从字符串文字转换为整数以进行比较。无论哪种方式,我都根据建议对其进行了修改
  • 你对 0 附近的引号是正确的,因为它会被适当地转换。但是,您在查询的其余部分中仍然有错误的引号,它是反引号 `(在键盘上的 ~ 下面),而不是单引号或双引号。
  • 先生,我已经尝试过了,但还是不行。我也试过 DATE(NOW()) 但不工作
  • 我已经尝试过 'CURDATE()' 但不起作用你必须知道 'CURDATE()' 重新运行字符串,如 '2018-04-02' 并且没有引号它会返回 20180401 但这也不是工作
猜你喜欢
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 2014-05-30
  • 1970-01-01
  • 2015-10-30
  • 2018-12-11
相关资源
最近更新 更多