sql >> Databasteknik >  >> RDS >> Sqlserver

SQL-fel:Konverteringen av en varchar-datatyp till en datetime-datatyp resulterade i ett värde utanför intervallet

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)


  1. PHP kan inte ansluta till mysql via python

  2. Ändra nummerkolumn

  3. Hur gör man ett glidande medelvärde för ett antal datum i SQL?

  4. Flera främmande nycklar i en tabell till en annan tabell i mysql