やりたいこと
0xとは
- そもそも0xとは16進数表記の目印だそうです。
16進数から10進数へ変換
- データ型の変換方法としてCASTとCONVERTがあるかと思いますので、どちらとも試してみました。
- 結果はこちら↓
SELECT
[16進数の列],
CAST([16進数の列] as VARBINARY),
CAST(CAST([16進数の列] as VARBINARY) as int)
FROM [dbo].[table]
SELECT
[16進数の列],
CONVERT(VARBINARY, [16進数の列], 1),
CONVERT(int, CONVERT(VARBINARY, [16進数の列], 1))
FROM [dbo].[table]
- どちらもバイナリ型に変換してから整数型に変換しているのですが、結果としては、CASTだとうまく変換できず、CONVERTを使用すると正しく変換できました。
- docsを確認したところ、バイナリ型への変換の際、0xが付く文字列の場合はCONVERTを使用してstyleを1に設定する必要があるようです。
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )