1 | master.sys.fn_varbintohexsubstring(0, convert (varbinary,<任意の数値>),1,0) |
プロシージャの仕様を確認するのには
1 | sp_helptext 'fn_varbintohexsubstring' |
- SQL7:master.dbo.xp_varbintohexstr
- SQL2000:master.dbo.fn_varbintohexstr / master.dbo.fn_varbintohexsubstring
- SQL2005:master.sys.fn_varbintohexstr / master.sys.fn_varbintohexsubstring
最初、ぐぐって Stigma - in the public_enemy - [SQL] SQLServer - 10進数→16進数変換 を参考にさせて頂こうとしたけど、 このページで紹介されているやり方だと16進で2桁までしか対応していないようで、採用しませんでした。 以下、比較
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | declare @var bigint ; set @var = 15 print 'convert dec to hex : ' + convert ( varchar ,@var) print STUFF((master.dbo.fn_varbintohexstr( cast ( cast (@var as bigint ) as binary (1))) COLLATE Latin1_General_CI_AS_KS_WS ),1,2, '' ) print master.sys.fn_varbintohexsubstring(0, convert (varbinary,@var),1,0) set @var = 511 print 'convert dec to hex : ' + convert ( varchar ,@var) print STUFF((master.dbo.fn_varbintohexstr( cast ( cast (@var as bigint ) as binary (1))) COLLATE Latin1_General_CI_AS_KS_WS ),1,2, '' ) print master.sys.fn_varbintohexsubstring(0, convert (varbinary,@var),1,0) set @var = 65535; --0xFFFF print 'convert dec to hex : ' + convert ( varchar ,@var) print STUFF((master.dbo.fn_varbintohexstr( cast ( cast (@var as bigint ) as binary (1))) COLLATE Latin1_General_CI_AS_KS_WS ),1,2, '' ) print master.sys.fn_varbintohexsubstring(0, convert (varbinary,@var),1,0) set @var = 65536; --0x1 0000 print 'convert dec to hex : ' + convert ( varchar ,@var) print STUFF((master.dbo.fn_varbintohexstr( cast ( cast (@var as bigint ) as binary (1))) COLLATE Latin1_General_CI_AS_KS_WS ),1,2, '' ) print master.sys.fn_varbintohexsubstring(0, convert (varbinary,@var),1,0) set @var = 4294967295 --0xFFFF FFFF print 'convert dec to hex : ' + convert ( varchar ,@var) print STUFF((master.dbo.fn_varbintohexstr( cast ( cast (@var as bigint ) as binary (1))) COLLATE Latin1_General_CI_AS_KS_WS ),1,2, '' ) print master.sys.fn_varbintohexsubstring(0, convert (varbinary,@var),1,0) |
0 件のコメント:
コメントを投稿