Powershell SQLite查询得到int64错误

c8ib6hqw  于 2023-06-23  发布在  SQLite
关注(0)|答案(1)|浏览(153)

我有一个数据库,用这个语句构建:

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值,我应该做些什么来避免这种不必要的转换呢?

w41d8nur

w41d8nur1#

我找到的解决方案是将INT字段转换为文本:

SELECT name, cast(systemaddress as text) as sysadd FROM starsystems WHERE name IS "61 Cygni"

别名sysadd很方便,因为它提供了一个比cast(systemaddress as text)更简单的列名。

相关问题