sql >> Database >  >> RDS >> Sqlserver

SQL-fout:de conversie van een varchar-gegevenstype naar een datetime-gegevenstype resulteerde in een waarde buiten het bereik

De veilige datum/tijd-tekenreeksindelingen die in SQL Server kunnen worden gebruikt, zijn

YYYYMMDD HH:MM:SS of YYYY-MM-DDTHH:MM:SS .

De conversie die u heeft zal mislukken als DATEFORMAT INSTELLEN is dmy. TAAL INSTELLEN zal automatisch het datumformaat voor u instellen. Ik denk dat beide german en norwegian gebruik dmy.

Dit zal mislukken:

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)

Doe dit in plaats daarvan (gebruik JJJJ-MM-DDTHH:MM:SS) om veilig te zijn, ongeacht de instellingen voor taal/datumformaat.

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. Django ConnectionAbortedError:[WinError 10053] Een tot stand gebrachte verbinding is afgebroken door de software op uw hostcomputer

  2. Three table join met andere joins dan INNER JOIN

  3. T-SQL:door komma's gescheiden waarden splitsen en aggregeren

  4. SQL LIKE-operator gebruiken als een parameter voor opgeslagen procedures