Bezpieczne formaty ciągów daty i godziny używane w SQL Server to
YYYYMMDD HH:MM:SS
lub YYYY-MM-DDTHH:MM:SS
.
Konwersja nie powiedzie się, jeśli USTAW FORMAT DATY
jest dmy. USTAW JĘZYK
automatycznie ustawi dla Ciebie format daty. Myślę, że zarówno german
i norwegian
użyj dmy.
To się nie powiedzie:
set language norwegian
declare @F7 varchar(10) = '26/04/2011'
declare @F8 varchar(10) = '00:09:13'
DECLARE @Date VARCHAR(20)
SET @Date = RIGHT(@F7,4)+'/'+SUBSTRING(@F7,4,2)+'/'+LEFT(@F7,2)
DECLARE @time DATETIME
SET @time = CONVERT(DATETIME, @Date + ' ' + @F8)
Zamiast tego zrób to (używając RRRR-MM-DDTHH:MM:SS), aby zapewnić bezpieczeństwo niezależnie od ustawień języka/formatu daty.
declare @F7 varchar(10) = '26/04/2011'
declare @F8 varchar(10) = '00:09:13'
DECLARE @Date VARCHAR(20)
SET @Date = RIGHT(@F7,4)+'-'+SUBSTRING(@F7,4,2)+'-'+LEFT(@F7,2)
DECLARE @time DATETIME
SET @time = CONVERT(DATETIME, @Date + 'T' + @F8)