【问题标题】:CURDATE gives errorCURDATE 给出错误
【发布时间】:2016-01-19 19:01:36
【问题描述】:

我有一个 INSERT 语句,

$stmt = $mysqli->prepare("INSERT INTO numbertable (numbers, numdate, salesperson, color) VALUES (?, NOW(), ?, ?)");

我的 SELECT 语句如下所示:

$result = $mysqli->query("SELECT COUNT FROM numbertable WHERE DATE(numdate) == CURDATE()");

当我运行我的 select 语句时,我收到以下错误。有人知道那可能是什么吗?

SELECT COUNT FROM numbertable WHERE DATE(numdate) == CURDATE()
 LIMIT 0, 30 
MySQL said: Documentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== CURDATE()
LIMIT 0, 30' at line 1 

【问题讨论】:

  • WHERE DATE(numdate) = CURDATE()。 SQL 没有== 运算符。

标签: mysql sql date


【解决方案1】:

在 mySQL 中,您需要 = 作为等号,而不是 ==。应该是:

SELECT COUNT FROM numbertable WHERE DATE(numdate) = CURDATE()

【讨论】:

  • 非常感谢,问题解决了。我有点困惑,因为当我在 PhpMyAdmin 中运行我的代码时,我得到的回报是今天有 6 个受影响的行,这是真的。当我在我的 phppage 查询中运行我的代码时,我发现有 507 行(这是我数据库中的所有行)
  • 这是完全相同的查询: SELECT * FROM numbertable WHERE DATE(numdate) = CURDATE() 当我使用时: SELECT COUNT FROM numbertable WHERE DATE(numdate) = CURDATE() 我得到错误:致命错误:在布尔值上调用成员函数 fetch_row():你知道那可能是什么吗?
  • 是在你的表中计算一列吗?这是一个保留字,如果是这样,你应该使用 select `count`
  • 你好。不,那不是我数据库中的一列。真的很奇怪。
  • 你想做什么?计算所有结果?如果是这样,它应该是count(*)
猜你喜欢
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-20
  • 2012-09-25
  • 2013-03-21
  • 2016-12-02
  • 1970-01-01
相关资源
最近更新 更多