看来这个新版本没有正确处理日期。请参阅以下意见:社区Sqlite不正确处理日期和日期时间
1)当使用如下:
_conn.Create<MyTable>();
我在MyTable的类有日期时间字段,然后,它是创造它作为BIGINT内列SQLite数据库。
2)如果我的BIGINT栏更改为日期时间 -to匹配MyTable的类的任何现有行的日期时间定义回读为01/01/0001!
3)如果我试图保存日期值到该日期时间字段,比如,将其设置为DateTime.Today它保存为30-12-1899。不管你试图保存什么价值都没关系。它总是保存为30-12-1899。
注意:我在Android上使用MVVMCross。
T.I.A.
斯图尔特感谢您的答复。因此,如果我选择保持StoreDateTimeAsTicks不变,那么我的“日期”或“日期时间”属性应该放在我的“MyTable”C#类中,以及表列中应该使用哪种SQLite数据类型?再次感谢您的信息。我会检查出来的。 – Pap
@Pap现在你可能已经知道了这一点,但是如果有其他人来看,那么只需将你的类的属性作为DateTime并且数据库中的列应该是bigint。有一件事要注意,我们遇到的是,因为存储的int是从DateTime.MinValue开始的tick,所以如果你想使用strftime()来获取sql的日期,你需要做一些调整,因为它会期待unix时代。 – 2014-03-04 12:12:16
@Tom,我实际上已经发现设置StoreDateTimeAsTicks = false会有诀窍。我的C#属性保留DateTime,映射的SQLite列也保留DateTime。就个人而言,我不喜欢将DateTime属性映射到BIGINT列的想法。不过谢谢。 – Pap