golang time.Time
类型和 sqlite3 text
类型或者 integer
类型不能在调用 Scan()
方法时自动转换么?
如果不能,存储时间类型字段最佳实践是什么,是不是不可避免出现中间字段或者需要做手动转换?
我在使用过程中出现如下错误:
sql: Scan error on column index 5, name \"create_time\": unsupported Scan, storing driver.Value type []uint8 into type *time.Time
数据驱动库使用 github.com/mattn/go-sqlite3
, 其中 golang 字段类型为 time.Time
, sqlite3 中字段类型定义为 text
和 integer
都试过了。
https://godoc.org/github.com/...
Go的
time.Time
对应sqlite的timestamp/datetime
,建议在sqlite中用timestamp/datetime
存储时间数据如果还是要用
text
的话,那就用Go的String
来读取,然后再用标准库做转换来获取time.Time
类型:需要再详尽一点的话就看官方文档吧:https://golang.org/pkg/time/#...