Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql сравнение на дата с date_format

Форматът ви по същество не е подходящ за сортиране, с който да започнете - вие сравнявате низове , а низът „28-10-2012“ е по-голямо от "02-11-2012".

Вместо това трябва да сравнявате датите като дати , а след това ги конвертирате само във вашия целеви формат за изход.

Опитайте това:

select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';

(Въведените данни винаги трябва да са във формата на стойност година-месец, съгласно документацията .)

Имайте предвид, че ако starttime е DATETIME поле, може да помислите за промяна на заявката, за да избегнете многократно преобразуване. (Оптимизаторът може да е достатъчно умен, за да го избегне, но си струва да проверите.)

select date_format(date(starttime),'%d-%m-%Y') from data
where starttime >= '2012-11-02 00:00:00';

(Обърнете внимание, че е необичайно да форматирате дата като d-m-Y за начало - би било по-добре да използвате y-M-d като цяло е стандарт ISO-8601 и т.н. Въпреки това горният код прави това, което поискахте във въпроса.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Издърпайте първите X думи (не само знаци) от mySQL

  2. Записване на специални символи в MySQL база данни

  3. Показване на BLOB изображение от Mysql база данни в динамичен div в html

  4. fetchAll помощна функция с помощта на PDO

  5. MySQL – MariaDB – Писане на първата съхранена процедура