Les formats de chaîne datetime sûrs à utiliser dans SQL Server sont
YYYYMMDD HH:MM:SS
ou YYYY-MM-DDTHH:MM:SS
.
La conversion que vous avez échouera si SET DATEFORMAT
est dmy. DÉFINIR LA LANGUE
définira automatiquement le format de date pour vous. Je pense que les deux german
et norwegian
utilisez dmy.
Cela échouera :
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)
Faites comme ceci à la place (en utilisant AAAA-MM-JJTHH:MM:SS) pour être en sécurité quels que soient les paramètres de langue/format de date.
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)