Возвращать true только в том случае, если дата не прошла
Это выполнит трюк напрямую как запрос в моей базе данных:
SELECT c.entity_id AS entity_id,
c.field_course_category_terms_tid AS field_terms_tid,
e.entity_type AS entity_type,
e.field_end_date_value AS field_end_date_value
FROM
field_data_field_terms c
INNER JOIN field_data_field_end_date e ON c.entity_id = e.entity_id
WHERE
e.field_end_date_value > curdate()
В моем запросе на друпале это сделало трюк:
$query = db_select('table1', 'c');
$query->innerJoin('table2', 'e', 'c.entity_id = e.entity_id');
$query->fields('c',array('entity_id','field_terms_tid'))
->fields('e',array('entity_type', 'field_end_date_value'))
->where('e.field_end_date_value now()');
->execute();
$result = $result->fetchAll();