PDO条件:创建日期是今天

时间:2012-10-29 17:06:38

标签: php date drupal-7 mysqli

我试图在查询中设置'date = today'条件。 DB中的日期存储为“1351504197”。

这是我的尝试:

->condition('cord.created',REQUEST_TIME - 3600, '<=')

这是完整的查询:

  $query = db_select('commerce_order', 'cord')->extend('TableSort');
  $query->join('commerce_line_item', 'li', 'cord.order_id = li.order_id');
  $query->join('commerce_product', 'item', 'item.sku = li.line_item_label');
  $query->fields('cord', array('order_id'))
        ->fields('li', array('quantity'))
        ->fields('item', array('title', 'sku'))
        ->groupBy('title')
        ->condition('cord.status', 'pending', '=')
        ->condition('cord.created',REQUEST_TIME - 3600, '<=')
        ->orderByHeader($header); 

  $query->addExpression("GROUP_CONCAT(li.order_id separator ', ')", 'order_id');         
  $query->addExpression('SUM(quantity)', 'quantity');

但当然返回的结果不正确。

任何人都知道如何做到这一点?

2 个答案:

答案 0 :(得分:2)

这看起来像一个unix时间戳。如果您使用的是原生MySQL日期/时间字段,则必须使用from_unixtime()unix_timestamp()

在它们之间进行转换

答案 1 :(得分:0)

修复是:

  $today = getdate();
  $start_time = mktime(0, 0, 0,$today['mon'],($today['mday'] - 1), $today['year']);
  $end_time = time();

  ->condition('cord.created', array($start_time, $end_time), 'BETWEEN')