【问题标题】:How to use the MySql 's methods DATE_ADD,DATE_FORMAT in Zend Framework2如何在 Zend Framework2 中使用 MySql 的方法 DATE_ADD,DATE_FORMAT
【发布时间】:2014-01-06 05:46:41
【问题描述】:

我的数据库有一个 sql 查询字符串

我希望这个mysql sql现在可以找到数据库行创建时间加上一天的时间

sql ='SELECT * FROM `order` WHERE (DATE_ADD(DATE_FORMAT(`create_date`, '%Y-%m-%e %H:%i:%s'), INTERVAL 24 HOUR) <= now()) 

我知道zf1代码

zf1

function test(){
   $select = $this->select(true)->setIntegrityCheck(false);
   $select->where("DATE_ADD(DATE_FORMAT(`om_created`, '%Y-%m-%e %H:%i:%s'), INTERVAL 24 HOUR)  <= now()));
   $data = $this->fetchAll($select);
}

【问题讨论】:

  • 你得到了什么。?
  • 为什么你要使用 DATE_ADD , DATE_FORMAT?你期待什么结果?
  • 第二个 DATE_FORMAT 中的 +30 是怎么回事?我以前从未见过这样的代码
  • 如果需要 1 天,请使用 INTERVAL 1 DAY
  • @TinTran +30 这一行是测试代码,我修复了原问题代码

标签: mysql sql datetime select dateadd


【解决方案1】:

你可以使用类似的东西:

从表中选择 * date >= DATE_SUB(NOW(), INTERVAL 1 个月)

在 ZF1 中你可以这样写:

$select->from('tablename')
 ->where( 'date >=  DATE_SUB(NOW(), INTERVAL 1 month)');

【讨论】:

    【解决方案2】:

    试试这个:

    SELECT * FROM `order` WHERE DATE_ADD(create_date, INTERVAL 24 HOUR) <= NOW()
    

    SELECT * FROM `order` WHERE DATE_ADD(create_date, INTERVAL 1 DAY) <= NOW()
    

    【讨论】:

    • 谢谢,这可能是原来的角色,我只是有点'符号
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多