J'essaie de convertir une date en date/heure mais j'obtiens des erreurs. Le type de données que je convertis est (float, null) et j'aimerais le convertir en DATETIME.
La première ligne de ce code fonctionne bien, mais je reçois cette erreur sur la deuxième ligne:
Arithmetic overflow error converting expression to data type datetime.
CAST(CAST( rnwl_efctv_dt AS INT) AS char(8)),
CAST(CAST( rnwl_efctv_dt AS INT) AS DATETIME),
vous devez d'abord convertir en caractère car la conversion en int ajoute ces jours au 1900-01-01
select CONVERT (datetime,convert(char(8),rnwl_efctv_dt ))
voici quelques exemples
select CONVERT (datetime,5)
1900-01-06 00: 00: 00.000
select CONVERT (datetime,20100101)
explose, car vous ne pouvez pas ajouter 20100101 jours au 1900-01-01 ... vous dépassez la limite
convertir en premier
declare @i int
select @i = 20100101
select CONVERT (datetime,convert(char(8),@i))
Essaye ça:
select CONVERT(datetime, convert(varchar(10), 20120103))