изменить формат номера идентификатора числа на формат даты - PullRequest
0 голосов
/ 13 июля 2020

Я хотел бы записать идентификационный номер из этого формата YYMMDDXXXXXXX в этот 19YY-MM-DD или 20YY-MM-DD в sql.

select Customer_identifier from  MartDB.DBO.BAW_AllSources_Stage1_202005

Customer_identifier cexample - 8801213535353, где 88 представляет год рождения 1988, 01 представляет месяц рождения, 21 января представляет день рождения 21 числа. 21 января 1988 года. Я хочу преобразовать это в дату 1988-01-21

1 Ответ

0 голосов
/ 13 июля 2020

Ниже сценария, но работает только с датой рождения <2000, потому что у вас есть проблема с дизайном </p>

SELECT TRY_CAST('19'+ SUBSTRING(CAST(8801213535353 AS varchar(13)), 1, 6) AS date)

Я использовал TRY_CAST, потому что возвращаю значение, приведенное к указанному типу данных, если приведение выполнено успешно, в противном случае возвращает null.

Вы также можете отформатировать дату другим способом, используя функцию FORMAT (из SQL Server 2012).

Пример:

SELECT  FORMAT(TRY_CAST('19'+ SUBSTRING(CAST(8801213535353 AS varchar(13)), 1, 6) AS date), 'yyyy-MMMM-dd') 

Вывод это: 1988-21 января

Пример с параметром культуры:

SELECT  FORMAT(TRY_CAST('19'+ SUBSTRING(CAST(8801213535353 AS varchar(13)), 1, 6) AS date), 'D', 'En-Us')

Результат: Четверг, 21 января 1988 г.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...