Преобразование FLOAT в DATE в SQL? - PullRequest
1 голос
/ 05 ноября 2019

Я хотел знать, как правильно преобразовать значение FLOAT в ДАТУ?

Данные, которые мы получаем, имеют ориентированное значение: YYYYMM отл. 201911 (сегодняшний год + месяц). Тем не менее, все значения, передаваемые в столбце ГГГГММ, означают первое число месяца, например201911 = 11/01/2019.

RIGHT([DATE],2) + '/01/' + LEFT([DATE],4) AS [DATE]

Когда я пытаюсь преобразовать его, он не помещает его в формат даты, потому что я пытался использовать его в функции DATEADD, и он допустил ошибку в преобразованном поле.

Ответы [ 2 ]

1 голос
/ 05 ноября 2019

Если ваше значение равно ГГГГММ, то одним простым методом является преобразование в строку, а затем в дату:

select convert(date, convert(varchar(255), yyyymm) + '01')

Или используйте datefromparts():

select datefromparts(floor(yyyymm / 100), yyyymm % 100, 1)
0 голосов
/ 05 ноября 2019

Пожалуйста, проверьте это:

DECLARE @Date AS FLOAT;
SET @Date = 201911;

SELECT CONVERT(VARCHAR, CAST(CAST(LEFT(@Date,4)  AS VARCHAR(4)) + '/01' + '/' + CAST(RIGHT(@Date,2)  AS VARCHAR(2))  AS DATE) , 103) As CREATEDDATE

Будет выводить 11/01/2019

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