1
私は2つのレジスタをPLC(modbus)からSQLサーバに、それぞれ16ビット転送します。私は私が私のPlcのと同じ結果を必要とし、この2つの整数を組み合わせたい、とRealのSQLデータ型に実際のデータ型へのSqlサーバの変換
declare @int1, @int2 integer
declare @result real
Select @int1 = 18196
, @int2 = 28800
Select @result = @int1 * 65536 + @int2 //-- this result is not wanted
を変換するために、結果は私が実際のデータ型に変換するにはどうすればよい38000.5
ですSQLで???
私の頭には、ネットを検索すると、ヘルプ
に感謝を傷つける他の方法は、周りの
select @result = 38000.5
Select convert(integer, substring(convert(varbinary, @result),1,2) //18196
Select convert(integer, substring(convert(varbinary, @result),3,2) //28800
'real'はおおよそのデータ型です。単に' decimal'を使うのではないのですか? – HoneyBadger
これは、PlcでRealとしてマスクされているため、後方のサーボが実際の値を使用するためです。 – Thorsten