SQL DateДобавить в столбец с данными в формате Великобритании и США - PullRequest
0 голосов
/ 12 октября 2018

У меня есть столбец, в котором хранятся данные даты и времени.Но данные могут быть в американском формате, британском формате или могут быть мусорными данными.Дело в том, что я хочу попробовать добавить данные в этот столбец.Когда данные представлены в формате Великобритании или США, тогда у меня будет DateAdd + 1, в противном случае останутся данные корзины.


До ===== После

1/30/2018 == 1/31/2018

20.1.18 ==== 21.1.18

N / A ======= N / A


Метод 1:

CASE WHEN ISDATE(MYCOL) = 1 THEN DateAdd(day,1,MYCOL) ELSE MYCOL END

Результат: толькоФорматы США будут +1, формат Великобритании будет игнорироваться


Метод 2:

CASE WHEN ISDATE(CONVERT(Datetime,MYCOL,4)) = 1 THEN DateAdd(day,1,CONVERT(VARCHAR(30),MYCOL,4)) ELSE MYCOL END

Результат: преобразование не выполнено при преобразовании даты и / или временииз строки символов будет в ISDATE(CONVERT(Datetime,MYCOL,4)) из-за данных корзины "N / A"


РЕДАКТИРОВАНИЕ:

Данные корзины будут не только "N / A ", это может быть что угодно.

1 Ответ

0 голосов
/ 12 октября 2018

как насчет этого:

CASE WHEN MYCOL = 'N/A' THEN MYCOL 
     ELSE CASE WHEN ISDATE(CONVERT(Datetime,MYCOL,4)) = 1 THEN DateAdd(day,1,CONVERT(VARCHAR(30),MYCOL,4)) ELSE MYCOL END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...