事实证明,sqlite不支持内部日期的时区。
而且,我需要用时区存储日期并对它们进行大量查询:主要是将它们与当天的日期进行比较(我的用户应该位于世界各地。而且旅行,所以从时区到时区)。
(我使用ormlite)
我想知道存储这些日期的最佳方式以及我应该创建哪些索引以确保最佳效果。
我怀疑如果我将日期存储为long并发出如下查询子句:
...
WHERE datetime(timestamp, 'localtime') > date_of_day
...
它不会使用索引。我担心我的查询会很慢。
到目前为止,解决方案是:
确定数据库的时区并存储没有时区的所有日期。每次查询数据库时,都必须将日期转换为数据库时区
将时区存储在单独的列中。但是你将无法使用索引(见上文)
将日期存储为字符串。
joda
(或date4j
)实现,那么奖励积分。