2017-09-27 5 views
-1

Je veux sélectionner les enregistrements de 5 jours avec mysql, mais le problème est que ma colonne date est varchar et dans le format suivant aaaa-mm-jj 00:00: 00 AM/PM.Obtenez 5 jours de retour enregistrements avec formate date spécifique avec mysql

Comment puis-je convertir ce format de date en date mysql et sélectionner les enregistrements à partir de 5 jours?

mon nom de colonne de date est 'date_time'

+1

Vous ne devriez pas stocker des dates comme varchar, vous devriez les stocker en tant que datetime. C'est pourquoi ce type de données existe. –

+0

Copie possible de [comment convertir une chaîne à ce jour en mysql?] (Https://stackoverflow.com/questions/5201383/how-to-convert-a-string-to-date-in-mysql) –

+0

@SeanLange vous avez raison, c'est une très vieille table, à l'époque je ne connaissais pas mysql par défaut date type – user3475530

Répondre

0

C'est a job for STR_TO_DATE().

Essayez ceci.

... WHERE DATE(STR_TO_DATE(date_time,'%Y-%m-%d %h:%i:%s %p')) = CURDATE() - INTERVAL 5 DAY 

Le '%Y-%m-%d %h:%i:%s %p'DATE_FORMAT() string correspond à votre format de date textuelle.

Cela ne sera jamais rapide si vous devez effectuer une recherche parmi un grand nombre de lignes, car ce n'est pas sargable. Il ne peut pas exploiter un index.

+0

J'apprécie ça mate, ça fait exactement ce que je voulais. – user3475530