PHP/My timestamp不喜欢出现在大于(>)语句中


PHP/My timestamp does not like to be in a greater than (>) statement

我在数据库中有一个时间戳,其值为:2011-10-05 16:06:48大于我已经定义的$start变量(2011-10-04 13:02:34),但当我运行查询时,我得到一个错误消息。

function getgeneration() {
$period = '1 month';
$siteid = 1;
$start = '2011-10-04 13:02:34';
$value = $this->GetOffset();
$this->db->select("esolar + $value AS Esolar")
     ->from('calcdata')
     ->where('siteid', $siteid)
     ->where("time > $start");
$query = $this->db->get()->result_array();
$Esolar1 = $query[0]['Esolar'];
echo $Esolar1;
return $Esolar1;
}
A Database Error Occurred

错误编号:1064

你的SQL语法有错误;查看手册对应于MySQL服务器版本,以便使用正确的语法在第4行'13:02:34'附近

SELECT esolar + 3 AS esolar FROM (calcdata) WHERE siteid = 1 ANDtime> 2011-10-04 13:02:34

文件名:/var/www/test/models/blog_model.php

行号:220

这是时间戳的常见问题吗?

似乎需要在时间戳周围加上引号,例如:

SELECT esolar + 3 AS Esolar FROM (calcdata) WHERE siteid = '1' AND time > '2011-10-04 13:02:34'

我认为你只是需要改变

->where("time > $start");

->where("time > '$start'");

将时间戳放在单引号或双引号中。