PHP / mysql - моя метка времени не любит быть в выражении больше, чем (>) - PullRequest
4 голосов
/ 12 октября 2011

В моей базе данных есть временная метка со значением: 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 для правильного использования синтаксиса около 13: 02: 34 на линии 4

ВЫБРАТЬ ЭСОЛЯР + 3 КАК ЭСОЛЯР ОТ (calcdata) ГДЕ siteid = 1 И time> 2011-10-04 13: 02: 34

Имя файла: /var/www/test/models/blog_model.php

Номер строки: 220

Это обычная проблема с метками времени?

Ответы [ 3 ]

7 голосов
/ 12 октября 2011

Похоже, вам нужно ставить кавычки вокруг отметки времени, например:

SELECT esolar + 3 AS Esolar FROM (calcdata) WHERE siteid = '1' AND time > '2011-10-04 13:02:34'
1 голос
/ 12 октября 2011

я думаю, вам просто нужно изменить

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

в

->where("time > '$start'");
0 голосов
/ 12 октября 2011

Поместите метку времени в одинарные или двойные кавычки.Это строки.

...