Как сравнить строку даты со столбцом даты и времени в моей базе данных - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть массив дней, который выглядит следующим образом:

Array
(
    [0] => "18/09/2019"
    [1] => "19/09/2019"
    [2] => "20/09/2019"
    [3] => "21/09/2019"
    [4] => "22/09/2019"
    [5] => "23/09/2019"
    [6] => "24/09/2019"
)

И столбец date в моей базе данных, который содержит DATETIME значений, например: 2019-09-18 00:00:00

Теперь я хочу выбрать все из моей таблицы orders, где, например, date = 18/09/2019.

Как я могу это сделать?

Я попробовал следующее, но это вызывает синтаксическую ошибку:

SELECT * FROM `orders` WHERE date = CONVERT(DATETIME, '24/09/2019')

Я использую MYSQL.

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Ответ для MySQL:

Необходимо преобразовать значения столбца DATETIME в значения DATE, используя DATE() function, а затем сравнить их со значениями массива, используя функцию STR_TO_DATE с соответствующим отображением:

SELECT * 
  FROM orders 
 WHERE DATE(date) = STR_TO_DATE(array_member, '%Y-%m-%d')
0 голосов
/ 24 сентября 2019

Ответ для базы данных Oracle:

Сначала необходимо усечь значения столбцов DATETIME до значений DATE, а затем сравнить их со значениями "массива", используя TO_DATE с соответствующим отображением:

SELECT * 
  FROM orders 
 WHERE TRUNC(date) = TO_DATE(array_member, 'YYYY-MM-DD')

Примечание: Я опубликовал этот ответ, прежде чем OP заявил, что он работает в MYSQL.Тем не менее, я оставлю это для пользователей Oracle, которые сталкиваются с той же проблемой в поисках ответов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...