当我尝试在表达式中使用时间格式的时间戳。我得到了错误
例如
$query->addExpression('date("H:i:s","dept_timestamp")','time_val');
答案 0 :(得分:0)
我认为问题在于您已将PHP函数放入addExpression。它将您的表达式直接输入数据库,因此您将要使用数据库将理解的日期格式化函数。假设你使用MySQL作为后端,你需要这样的东西:
$query->addExpression('from_unixtime("dept_timestamp", "%h:%i:%s")', 'time_val');
这是一个完整的例子,无缘无故地加入了节点表和field_data_body表:
$query = db_select('node', 'n')
->fields('n', array('nid', 'title'));
$query->join('field_data_body', 'b', 'n.nid = b.entity_id');
$query->fields('b', array('body_value'));
$query->addExpression("from_unixtime(created, '%h:%i:%s')", 'my_timestamp');
$result = $query->execute();