De säkra datetime-strängformaten att använda i SQL Server är
YYYYMMDD HH:MM:SS
eller YYYY-MM-DDTHH:MM:SS
.
Konverteringen du har kommer att misslyckas om STÄLL IN DATUMFORMAT
är dmy. STÄLL IN SPRÅK
kommer automatiskt att ställa in datumformat för dig. Jag tror både german
och norwegian
använd dmy.
Detta kommer att misslyckas:
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)
Gör så här istället (använd ÅÅÅÅ-MM-DDTHH:MM:SS) för att vara säker oavsett språk-/datumformatinställningar.
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)