【问题标题】:Codeigniter SQL Query SyntaxCodeigniter SQL 查询语法
【发布时间】:2017-03-15 04:51:07
【问题描述】:

我正在使用Codeigniter3,但查询有问题

变量day的默认值为14。我想将下面的sql查询转换为下面的codeigniter模型。

(CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD( CONVERT_TZ(NOW(),'+0:00','+9:00') , INTERVAL -".$day." DAY )

OR CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD( CONVERT_TZ(NOW(),'+0:00','+9:00') , INTERVAL -".$day." DAY ) )

这是我写的模型,它给出了错误

$where["CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD( CONVERT_TZ(NOW(),'+0:00','+9:00'),"] = "INTERVAL -".$day." DAY";

foreach ($where as $key => $value) {
   $this->db->where($key,$value);
}

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    像这样试试..

     $where = "(CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD( CONVERT_TZ(NOW(),'+0:00','+9:00') , INTERVAL -".$day." DAY )
               OR CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD( CONVERT_TZ(NOW(),'+0:00','+9:00') , INTERVAL -".$day." DAY ))";
    
      $this->db->where($where);
    

    更多信息请见Codeigniter Query Builder

    【讨论】:

    • 感谢您的建议。我将研究 Codeginiter 查询生成器。但是,我已经尝试了您的代码,它仍然给我同样的错误。
    • 好的。这是我的错误您有一个错误:在您的 SQL 语法中;检查与您的 MySQL 服务器版本相对应的手册,以在 ') OR CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD( CONVERT_TZ(NO' at line 3跨度>
    • 您当前的 MySQL 版本不支持CONVERT_TZ()
    • Mysql 版本信息 : "mysql Ver 14.14 Distrib 5.5.53" 它支持CONVERT_TZ 功能并且可以工作..
    • 这段代码运行良好这是我的错误。我摆脱了)
    猜你喜欢
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2010-10-29
    • 2018-09-13
    • 2012-07-29
    • 1970-01-01
    相关资源
    最近更新 更多