SQLite.Swift:在值不为null的列值中获取null

问题描述 投票:0回答:1

我正在SQLite.swift库上运行一个简单查询,从我的表中选择idstart_time,其中start_time列的值大于零。

let query = table.where(self.columns.start_time > 0).select(self.columns.id, self.columns.start_time)
for i in try db.prepare(query) {
    print(i)
    let id = try i.get(self.columns.id)
    let start_time = try i.get(self.columns.start_time) // This throws error
}

[self.columns是此类的实例:

 private class Columns {
   let id = Expression<Int>("id")
   let start_time = Expression<Double>("start_time")
}

我在抱怨start_time出现意外的空值时遇到错误,>

"start_time"列的意外空值

其中的值确实为非null。实际上,当我打印出行(变量i)时,它是这样的:

Row(columnNames: ["\"id\"": 0, "\"start_time\"": 1], values: [Optional(355487), Optional(1585212120000)])

显然,该值不是null。那这是怎么回事?

我正在SQLite.swift库上运行一个简单的查询,从我的表中选择id和start_time,其中start_time列的值大于零。让查询= table.where(self.columns ....

swift sqlite
1个回答
0
投票

我不熟悉从行中提取值的这种方式。我会这样:

© www.soinside.com 2019 - 2024. All rights reserved.