2016-12-08 2 views
0

J'ai une instruction case-when qui renvoie le 15 de chaque mois si mon champ de date tombe dans ce mois.Cas lorsque l'instruction - Convertir la sortie au format de date

CASE WHEN (Date Field between date '2016-01-01 and date '2016-01-31') THEN '1/15/2016' 
Else 'N/A' 
End as New_Date_Field 

Le problème est que la valeur retournée (1/15/2016) dans mon New_Date_Field est pas au format de la date, mais plutôt VARCHAR. Comment puis-je convertir cela en un format de date?

Mise à jour: enter image description here

Répondre

0

Si vous voulez avoir le format de date, vous devez convertir nous convertir ou coulée. Lors de la conversion, nous devons convertir la casse et d'autre part au même format. Dans ce cas, ELSE sera nulle au lieu de mot-clé « N/A », car « N/A » est pas le format de date

CASE WHEN (DateField between '2016-01-01' and '2016-01-31') THEN convert(datetime,'1/15/2016',101) 
Else NULL End as New_Date_Field 
+0

Je reçois l'erreur « Erreur de syntaxe, quelque chose comme prévu un « FIN » entre le mot «convertir» et «(».) Des idées? – David

+0

J'ai inclus une capture d'écran dans mon message original avec ma requête Merci pour l'aide! – David

+1

Il est préférable d'inclure une explication de pourquoi cela résout le problème (plutôt que d'avoir un – EJoshuaS