-1
votes

Comme avec la fonction de date

J'ai une table qui a des dates stockées comme texte et non comme une date_time. Je veux sélectionner des lignes qui se sont produites aujourd'hui. Je peux duper le code de la date, mais il est évident que je veux le faire de manière dynamique.

Sélectionnez * à partir de la vue où un anniversaire comme '% 09-07'

Sélectionnez * à partir de la vue d'anniversaire comme '%' + date_format (maintenant (), "% m-% d" d ")


3 commentaires

Une meilleure idée serait sûrement de convertir la colonne pour être une colonne DateTime appropriée. Ensuite, ce type de requête serait trivial.


Je ne sais pas ce que vous posez question est spécifiquement mais jetez un coup d'oeil à ce message [ Stackoverflow.com/Questtions/731456/convert-dates-with-mysql]


Essayez là où le mois (anniversaire) = mois (maintenant (maintenant ()) et jour (anniversaire) = jour (maintenant ()); Si l'anniversaire est une date ou une date de date


3 Réponses :


0
votes

Les opérateurs de mois et de jour peuvent être utilisés: xxx

si la colonne est de type varchar la fonction str_to_date peut être utilisé. Pour le transformer en une date: xxx


2 commentaires

Merci Str_To_Date () a travaillé. Ce n'est pas ma base de données, je n'écris que des requêtes contre elle. Convenu que les données doivent être stockées comme date_time, mais ce n'est pas le cas. C'est comme ça.


Génial! Pourriez-vous le marquer comme réponse / uppote-le afin que d'autres puissent trouver cette solution? @Robf.



1
votes

Tout d'abord, vous devez enregistrer des dates comme date code> S, pas comme des chaînes.

mais, s'ils sont stockés comme des chaînes, vous pouvez utiliser une comparaison comme celle-ci: P> xxx pré>

mais je vous recommande de corriger vos données. Si les valeurs sont dans le format AAAAY-MM-DD, faites simplement: P>

alter table t modify column anniversary date;


0 commentaires

0
votes

Cela devrait fonctionner, Convertissez la chaîne à la date et enregistrez la clause

SELECT * FROM view WHERE STR_TO_DATE(anniversary, '%d-%m-%Y') = CURDATE()


0 commentaires