У меня есть запрос, сравнить даты, что-то вроде:Sql Server Дата новообращенного
SELECT * FROM TABLE WHERE MYDATETIME < @DATE
Столбец MYDATETIME столбец DATETIME, но когда я получаю дату из веб-формы я получаю его в формате даты и создать объект DateTime в PHP:
$date = DateTime::createFromFormat('d/m/Y',$date);
проблема заключается в том, когда запрос сравнивает даты, которые он использует время суток, а также, но когда я создаю дату в PHP он получает время системы.
Я хотел бы сравнить только дату, а не время суток.
Какой вариант лучше для производительности баз данных, создание объекта в PHP с помощью:
DateTime::createFromFormat('d/m/Y H:i', $date." 00:00");
или преобразования в запросе?
SELECT * FROM TABLE WHERE CONVERT(DATE,MYDATETIME) < CONVERT(DATE, @DATE)
Это может быть серьезным недостаток конструкции. Оставьте свой db с datetime и попробуйте webform нажать дату и время. Boom done – FirebladeDan
Мне нужно время datetime по другим причинам в таблице, но поле в веб-форме должно быть Date, потому что я хочу получать записи для определенного диапазона дат, игнорируя время –
Если вы собираетесь с опцией базы данных (которая Я думаю, что это хорошо), убедитесь, что у вас есть нужные индексы. Если у вас есть индекс в MyDateTime, то его преобразование не будет делать эти индексы. – Sagar