您好我正在尝试使用db_select来比较日期。但是该字段的类型为datetime。我无法弄清楚如何比较两个日期。数据库的样本日期如下:2015-10-21 00:00:00。任何帮助都会很棒。
$query->condition('dp.field_parution_value', 'DATE(2015-08-01)', '>');
$query->condition('dp.field_parution_value', 'DATE(2015-12-31)', '<');
答案 0 :(得分: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, '<=');
答案 1 :(得分: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();