MySQL CAS énoncés à l'aide de dates
Je suis en train d'utiliser une instruction de CAS dans une requête SQL que j'ai et il ne fonctionne pas de la façon dont je pensais que ça ferait.
En gros, j'ai trois scénarios-je besoin pour accomplir, à l'aide d'un champ de date, donc par exemple, j'ai les données suivantes:
id | date_activated
1 | 2011-10-10 07:00:06
2 | 2011-03-12 10:00:00
3 | 2011-11-27 18:10:36
4 | 2010-01-25 14:30:43
5 | 0000-00-00 00:00:00
à l'aide de l'instruction SQL suivante:
select id,
case date_activated
when date_activated > '2011-11-23 18:30:00' then 'after'
when date_activated > '2010-01-20 00:00:00' then 'before'
else 'not yet'
end as date_note
from table1
devrait permettre de:
id | date_activated | date_note
1 | 2011-10-10 07:00:06 | before
2 | 2011-03-12 10:00:00 | before
3 | 2011-11-27 18:10:36 | after
4 | 2010-01-25 14:30:43 | before
5 | 0000-00-00 00:00:00 | not yet
Cependant, c'est en tirant:
id | date_activated | date_note
1 | 2011-10-10 07:00:06 | not yet
2 | 2011-03-12 10:00:00 | not yet
3 | 2011-11-27 18:10:36 | not yet
4 | 2010-01-25 14:30:43 | not yet
5 | 0000-00-00 00:00:00 | after
Je ne peux pas comprendre ce que je fais mal, mais je parie que c'est quelque chose de simple!
est
c'est un vrai champ datetime
date_activated
un véritable champ datetime, ou est-ce char/varchar?c'est un vrai champ datetime
OriginalL'auteur Jo H | 2011-11-28
Vous devez vous connecter pour publier un commentaire.
Essayez celui -
Il y a deux CAS de flux de fonctions de MySQL, vous devez utiliser un avec conditions.
OriginalL'auteur Devart