Сравнение дат с MySQL DATE_FORMAT
При сравнении дат с использованием функции MySQL DATE_FORMAT очень важно понимать, что выбранный вами формат влияет на результат сравнения .
В данном примере таблица содержит даты в формате «%d-%m-%Y», и запрос пытается сравнить их, используя тот же формат. Однако это приводит к неверным результатам, поскольку «28-10-2012» лексикографически больше, чем «02-11-2012».
Чтобы решить эту проблему, рекомендуется сравнивать даты как даты, а не как строки. Правильный запрос должен быть следующим:
select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';
Здесь функция date() извлекает компонент даты из поля времени начала, а дата '2012-11-02' задает сравнение дата в формате значения год-месяц. Это гарантирует правильность сравнения дат.
Если starttime представляет собой поле DATETIME, рассмотрите возможность использования следующего запроса, чтобы избежать повторного преобразования:
select date_format(date(starttime),'%d-%m-%Y') from data
where starttime >= '2012-11-02 00:00:00';
Как правило, для форматирования даты рекомендуется использовать стандарт ISO-8601, например г-М-д. Однако приведенные выше запросы демонстрируют, как выполнять сравнение дат, используя предоставленный формат.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3