Hello,
Je me pose une question (peut-être qu'il existe une réponse simple :lol:), voilà mon cas :
Je cherche à convertir en hexadécimal une valeur entière (bigint) et j'ai fait plusieurs tests, dont celui-ci qui me laisse perplexe :
=> 4294967295 (parfait, logique c'est la valeur maximale sur 4 octets)Code:SELECT CONVERT(bigint, 0xFFFFFFFF)
Maintenant si je fais l'inverse pour retrouver ma valeur hexadécimal :
=> 0x0A000001 :weird: alors que je m'attendais à avoir 0xFFFFFFFFCode:SELECT CONVERT(varbinary(4), 4294967295)
Du coups j'ai poussé à 8 octets :
=> 0x0A000001FFFFFFFF :weird::weird: je ne comprends pas !Code:SELECT CONVERT(varbinary(8), 4294967295)
Maintenant en castant ma valeur en bigint, j'obtiens le bon résultat :
=> 0xFFFFFFFF :DCode:SELECT CONVERT(varbinary(4), CAST(4294967295 AS bigint))
Du coup la question est : Comment le moteur SQL interprète t il la valeur brute 4294967295 ??