我用 gorm 读取 sqlite3 的文件,其中有个表 字段 id 是自增的,字段 date 是 DATE 类型,当我读取这个表的数据时,id 总是显示为 0,date 总是显示为 0001-01-01T00:00:00Z
请问下是怎么回事呢?应该怎么解决。
谷歌百度都没搜到怎么解决。。。
请问下是怎么回事呢?应该怎么解决。
谷歌百度都没搜到怎么解决。。。
type Job struct{
Id int `gorm:"column:Id;primary_key;AUTO_INCREMENT"`
Name string `gorm:"column:Name"`
Date time.Time `gorm:"column:date"`
}
func Test(){
file := "D:\\test.db"
db,err := gorm.Open("sqlite3",file)
if err == nil{
defer db.Close()
a := Job{}
db.Where("Name=?","testcase").Find(&a)
fmt.Println(a)
}else{
fmt.Println(err.Error())
}
}
|
boom7Jun 17, 2019
1
代码呢
|
|
wa8nJun 17, 2019 via iPhone
2
代码呢,返回 error 了吗?
|
|
CarseasonJun 17, 2019 via iPhone
3
没读取到所以返回默认值了
|
|
4
|
|
beidounanxiziJun 17, 2019
5
连接参数 parselocal?
|
|
anonymous256Jun 17, 2019 via Android
6
用数据库软件,打开源 sqlite 文件,看看里面是什么情况。如果数据正常,就是程序的问题。
|
|
7
我也遇到过一次,是数据库连接字符串上需要加上 parseDate=true (类似这样的一个配置,手机不方便查看)解决的,具体的看 readme 上面写的有。
|
|
8
@anonymous256 用 SQLiteStudio 打开看数据是正常的
@beidounanxizi 您说的是 parseTime=true&loc=Local 这两参数吗?好像这两是用在 MySQL 的连接 |
|
beidounanxiziJun 17, 2019
9
@peanuts7660 是的 连接参数你看看对不对头 感觉是连接参数的设置问题
也可以看看 b 站流出来的代码的参数设置阿 |
|
10
@beidounanxizi 好的,我去看看呢,谢啦
|
|
rrfengJun 17, 2019
11
把这个打出来:`db.Where("Name=?","testcase").Find(&a).Error`
估计是 RecordNotFound |
|
polebugJun 17, 2019
12
Q: sqlite 真的连上了吗,其他数据能正常读出来吗
|
|
momo733Jun 17, 2019 via iPhone
13
你数据库的列名是 Id ?日期列名 date ?检查写对了没……感觉你这大小写不统一
|
|
wa8nJun 17, 2019 via iPhone
14
用 slice 接收试试
|
|
janxinJun 17, 2019
15
你没有验证是不是有 error 啊
|
|
aimerforreimuJun 17, 2019
16
`db.LogMode(true)`
加上这一句打印一下 sql 的日志 |
|
skiyJun 18, 2019
17
打印下日志吧。没查到数据肯定就是空值的啊。
|