Sqlite 时间过滤问题 返回
sqlite对datetime字段支持有点问题
where 语句中不能直接使用类似 "CREATE_DATE" = '2021-09-14 00:00:00.000' 这样的语句,会无法查询出数据
如果
正确的用法应该是 datetime("CREATE_DATE") = datetime('2021-09-14 00:00:00.000')
热忱回答(6)
-
fate stay night VIP0
2021/9/15ORM默认是不会加函数转换的你可以手动 convert.todatetime(it.CREATE_DATE)==convert.todatetime("2021-09-14 00:00:00.000'")
0 回复 -
fate stay night VIP0
2021/9/15如果表和实体设计合理是不需要额外转换的
0 回复 -
你的名字 VIP0
2021/9/15问题找到了,orm 插入的时候是参数化形式,如果是datetime.now.date sqlite内部实际存的值是2021-09-14 00:00:00 , 这个时候查询按2021-09-14 00:00:00.000 就会查不到
我的解决办法是在 OnExecutingChangeSql 中强制转换为yyyy-MM-dd HH:mm:ss.fff 形式
0 回复 -
fate stay night VIP0
2021/9/15@你的名字:你可以用 it.xxx.Date==DateTime.Now.Date 这样就查同一天的,就不会受时分秒影响
0 回复 -
你的名字 VIP0
2021/9/15查询到时没什么,条件随便怎么加都可以,我发现这个问题是在更新时候
Updateable(array).UpdateColumns(p => new { p.Status }).WhereColumns(p => new { p.Id, p.CreateDate })
0 回复 -
fate stay night VIP0
2021/9/15@你的名字:这个记下来了,后面会去验证
0 回复