0

クエリに「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');

もちろん、返された結果は正しくありません。

誰でもこれを行う方法を知っていますか?

4

2 に答える 2

2

それはUNIXタイムスタンプのように見えます。ネイティブの MySQL 日付/時刻フィールドを使用している場合は、from_unixtime()またはunix_timestamp () を使用して、それらの間で変換する必要があります。

于 2012-10-29T17:10:55.163 に答える
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')
于 2012-10-30T09:40:07.310 に答える