Я хочу выбрать все строки в таблице mysql, у которых есть дата между заданными датами. Формат в моей базе данных, например,
"2018-09-28T12:00:00".
Это мой запрос:
SELECT d.field_datum_der_veranstaltung_value AS field_datum_der_veranstaltung_value, n.nid AS nid, n.title AS title
FROM
{node} n
LEFT OUTER JOIN {field_data_field_datum_der_veranstaltung} d ON d.entity_id = n.nid
WHERE (d.field_datum_der_veranstaltung_value BETWEEN '2018-01-01T00:00:00' AND '2018-01-30T23:59:00')
ORDER BY d.field_datum_der_veranstaltung_value ASC
Обратите внимание, это запрос, сгенерированный Drupal API, который работает (на случай, если вас интересует {node})
Теперь, когда даты в БД представляют собой строки, как я могу сравнить значения?






Вы можете попробовать использовать функцию STR_TO_DATE, чтобы получить DateTime
SELECT d.field_datum_der_veranstaltung_value AS field_datum_der_veranstaltung_value, n.nid AS nid, n.title AS title
FROM
{node} n
LEFT OUTER JOIN {field_data_field_datum_der_veranstaltung} d ON d.entity_id = n.nid
WHERE (d.field_datum_der_veranstaltung_value
BETWEEN STR_TO_DATE('2018-01-01T00:00:00', '%Y-%m-%d') AND STR_TO_DATE('2018-01-30T23:59:00', '%Y-%m-%d') )
ORDER BY d.field_datum_der_veranstaltung_value ASC
Или вы можете использовать функцию В РОЛЯХCAST(d.field_datum_der_veranstaltung_value AS DATETIME) для datetime.
SELECT d.field_datum_der_veranstaltung_value AS field_datum_der_veranstaltung_value, n.nid AS nid, n.title AS title
FROM
{node} n
LEFT OUTER JOIN {field_data_field_datum_der_veranstaltung} d ON d.entity_id = n.nid
WHERE (CAST(d.field_datum_der_veranstaltung_value AS DATETIME)
BETWEEN CAST('2018-01-01T00:00:00' AS DATETIME) AND CAST('2018-01-30T23:59:00' AS DATETIME)
ORDER BY d.field_datum_der_veranstaltung_value ASC
вот пример даты создания iso DATE_FORMAT(date, '%Y-%m-%dT%TZ'), попробуйте, как показано ниже
SELECT * from table_name
FROM table_name
where datecondition>=DATE_FORMAT('2018-01-01T00:00:00', '%Y-%m-%dT%TZ')
and datecondition <=DATE_FORMAT('2018-01-30T23:59:00', '%Y-%m-%dT%TZ')
Что за тип field_datum_der_veranstaltung_value?