>当我尝试在表达式中使用时间格式的时间戳时。我收到错误
例如
$query->addExpression('date("H:i:s","dept_timestamp")','time_val');
我认为问题是你已经将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();