У меня проблема с преобразованием и приведением типа. У меня есть поле с типом данных BigInt, значение которого хранится в формате "ггггммдччммсс", например "20170609043000". Я пытаюсь получить подстроку даты в метке времени, например 20170609, с разделителем 2017-06-09. Не удалось получить часть даты в метке времени.
Запрос Я попытался получить часть даты:
SELECT CONVERT(date,SUBSTRING(CAST(STR(evt.StartDate,15) as varchar),1, 5), 102) from Event evt
SELECT DATEADD(hour,-5, CONVERT(datetime, SUBSTRING(CAST(STR(evt.StartDate, 15) as varchar),6, 2) + '-' + SUBSTRING(CAST(STR(evt.StartDate, 15) as varchar), 8, 2) + '-' + SUBSTRING(CAST(STR(evt.StartDate, 15) as varchar), 1,5) + ' ' + SUBSTRING(CAST(STR(evt.StartDate, 15) as varchar),10, 2) + ':' +SUBSTRING(CAST(STR(evt.StartDate, 15) as varchar), 12, 2) + ':' + SUBSTRING(CAST(STR(evt.StartDate, 15) as varchar), 14, 2), 120)) from Event evt
Первый запрос возвращает преобразованную дату, но месяц и дата остаются неизменными,конкатенация не работает, если я пытаюсь ввести месяц и дату.
Второй запрос вообще не работает.
Любая помощь будет полезна.