我有一个PHP函数,它执行一个MySQL查询,并定义了一些变量。我需要SQL语句的BETWEEN子句来处理变量,其中一个变量是DateTime()函数。
这里的$start变量应该创建一个新的时间,然后我在数据库中的值应该在这个时间和我定义的$finish变量之间。

$start = new DateTime();

$finish = '2013-10-06 17:06:52';

$value = $this->GetOffset();

$this->db->select("esolar + $value AS Esolar", 1)
     ->from('calcdata')
     ->where('siteid', $siteid)
     ->where("time BETWEEN '$start' AND '$finish'")
     ->where('esolar <', 1000000)
     ->where('esolar <>', 0);
$query1 = $this->db->get()->result_array();
$Esolar1 = $query1[0]['Esolar'];

但是,当我这样做时,我会得到这个错误:
遇到PHP错误
严重程度:4096
消息:无法将DateTime类的对象转换为字符串
谢谢

最佳答案

你应该这样做:
$start=$start->格式('Y-m-d H:i:s');
否则将传递对象而不是字符串作为参数

07-25 20:54