当使用DATETIME函数做一些算术时,我发现了以下行为:
选择DATETIME('现在',' - 1月','月初')
预期:2011-02-01 00:00:0
结果:2011-03-01 00:00:0 - 失败
选择DATETIME('现在',' - 2月','月初')
预期:2011-01-01 00:00:0
结果:2011-01-01 00:00:0 - 好的
这种情况似乎从昨天开始发生,我的集成测试就此发现了.我的猜测是,减去的月数以天计算,并且以某种方式使用上一个完整月份的天数(不是当前天数).最后一个月,2月特色28天,因此结果)
这可以通过更改DATETIME函数的输入顺序轻松解决,如下所示:DATETIME('now','start of month','-1 month'),但仍然是棘手的行为,可能会导致错误不被注意.
我正在使用System.Data.SQLite.DLL/version 1.0.66.0/Apr 18,2010
有人发现了这种行为吗?这是一个已知的错误?或者我做错了吗?