2015-10-16 200 views
2

嗨,我想做一个db_select比较日期。但是该字段是datetime类型的。我无法弄清楚如何比较两个日期。来自数据库的样本日期如下2015-10-21 00:00:00。任何帮助都会很棒。drupal 7日期时间日期比较

$query->condition('dp.field_parution_value', 'DATE(2015-08-01)', '>'); 
$query->condition('dp.field_parution_value', 'DATE(2015-12-31)', '<'); 

回答

1

我设法把它整理出来。这里是。将日期转换为时间戳,然后使用函数日期,然后将其作为参数传递。

$query->fields('fp', array('field_parution_value')); 
$start = date('Y-m-d H:i:s', $timestamp_start); 
$end = date('Y-m-d H:i:s', $timestamp_end); 
$query->condition('fp.field_parution_value', $start, '>'); 
$query->condition('fp.field_parution_value', $end, '<='); 
0

你应该可以使用BETWEEN运算符来完成它。我不确定Drupal是否支持DATE()闭包作为参数 - 但是您可以使用unix时间戳。

$test = db_select('node', 'n'); 
$test->fields('n'); 
$test->condition('created', array(strtotime('2015-01-01'), strtotime('2016-01-01')), 'BETWEEN'); 
$result = $test->execute();