2016-12-08 7 views
0

У меня есть аргумент case-when, который возвращает 15 числа любого месяца, если мое поле даты выпадает в этом месяце.Case When Statement - преобразовать формат вывода в формат даты

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 

Проблема заключается в том, что значение возвращается (1/15/2016) в моем New_Date_Field не в формате даты, а VARCHAR. Как я могу преобразовать это в формат даты?

Обновлено: enter image description here

ответ

0

Если вы хотите иметь формат даты, вы должны преобразовать его Переведем или литые. Когда мы конвертируем, нам нужно преобразовать регистр и другое в тот же формат. В этом случае, ELSE будет нулевым вместо «N/A», так как «N/A» не формат даты

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

Я получаю сообщение об ошибке «Ошибка синтаксиса, ожидается что-то вроде„END“ключевое слово между словом «convert» и «(« Любые идеи » – David

+0

Я включил скриншот в свое первоначальное сообщение с моим запросом. Спасибо за помощь! – David

+1

Лучше включить некоторое объяснение, почему это решает проблему (вместо того, code-only), поэтому он более полезен будущим читателям. – EJoshuaS