SQL Serverデータベースからsignedintを取得していて、ユーザーに表示するために「通常の」外観の点線の文字列に変換する必要があります。
グーグル、私はこのコードを見つけました:
SELECT
dbo.IPADDRESS.IPADDRESS,
CAST(ROUND( (cast(dbo.IPADDRESS.IPADDRESS as bigint) / 16777216 ), 0, 1) AS varchar(4)) + '.' +
CAST((ROUND( (cast(dbo.IPADDRESS.IPADDRESS as bigint) / 65536 ), 0, 1) % 256) AS varchar(4)) + '.' +
CAST((ROUND( (cast(dbo.IPADDRESS.IPADDRESS as bigint) / 256 ), 0, 1) % 256) AS varchar(4)) + '.' +
CAST((cast(dbo.IPADDRESS.IPADDRESS as bigint) % 256 ) AS varchar(4)) as IPDottedNotation
FROM
dbo.IPADDRESS
これは時々機能しますが、他の時には奇抜な出力を生成します。たとえば、これを変換する-1951276725
と結果が得られ-116.-78.-30.-181
ます。
助言がありますか?ありがとう。