我有一个数据库,用这个语句构建:
CREATE TABLE starsystems
(
name TEXT NOT NULL COLLATE NOCASE,
systemaddress INT UNIQUE,
CONSTRAINT combined_uniques UNIQUE (name, systemaddress)
)
(and I can't change the DB and the table is made)
其中一个字段包含以下数据:
Name: "61 Cygni", systemaddress: 5856288576210
我使用powershell执行这个查询来填充一个数据集:
$oSQLiteDBCommand.Commandtext='SELECT name, systemaddress FROM starsystems WHERE name IS "61 Cygni" '
但我的结果是:
61 Cygni, -2046815534
所以,出于某种原因,我得到的SystemMadress字段就像是
(systemaddress & 0x00000000FFFFFFFF) | 0xFFFFFFFF00000000
(抱歉,我的英语单词不正确,请原谅)。
我做错了什么,我应该做什么?而且,既然我需要更改systemaddress值,我应该做些什么来避免这种不必要的转换呢?
1条答案
按热度按时间w41d8nur1#
我找到的解决方案是将INT字段转换为文本:
别名
sysadd
很方便,因为它提供了一个比cast(systemaddress as text)
更简单的列名。