【问题标题】:Error with DATE_DIFF in mysqlmysql 中的 DATE_DIFF 错误
【发布时间】:2012-05-11 05:06:20
【问题描述】:

尝试在 mySQL 中实现 DATE_DIFF 时不断出错。

我正在尝试获取“hm_date”与当前日期之间的天数,并将该数字显示在名为“total_days”的不同字段中。

在服务器端执行此操作,我的代码出现错误:#1305 - FUNCTION naturan8_41q.DATE_DIFF 不存在

SELECT * FROM reg_add WHERE DATE_DIFF(hm_date,total_days)

【问题讨论】:

  • #1305 - 函数 naturan8_41q.DATE_DIFF 不存在

标签: php mysql date server-side datediff


【解决方案1】:

DATEDIFF 是正确的名称,没有空格(确实与DATE_ADDDATE_FORMAT 混淆和不一致)

【讨论】:

  • 谢谢。那行得通,但我在 total_days 中没有得到任何结果。我不明白为什么。
【解决方案2】:

您使用的是DATE_DIFF,这就是错误。 DATEDIFF 是正确的函数名称。

更正查询:SELECT DATEDIFF(curdate(),hm_date) as total_days FROM reg_add.

【讨论】:

  • 这是什么? #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“as total_days LIMIT 0, 30”附近使用正确的语法
  • Again.... #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“as total_days LIMIT 0, 30”附近使用正确的语法
  • 好吧..它工作但它返回NULL。我将类型更改为日期时间。我想要的只是几天。
  • hm_date 也应该是日期时间吗?
  • 是的,两个字段都应该是日期时间
【解决方案3】:
SELECT DATEDIFF(curdate(), hm_date) as total_days FROM reg_add 

【讨论】:

  • #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'as total_days LIMIT 0, 30' 附近使用正确的语法
猜你喜欢
  • 1970-01-01
  • 2019-01-04
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多