在SQLite中保存date时间types的最佳方法是什么?
我正在创buildAndroid应用程序,需要保存创buildlogging的date/时间。 什么是最好的办法呢? 我将需要稍后进行比较。 例如,在我的应用程序中,我将显示在dateA到dateB之间创build的所有logging。
SQlite没有特定的date时间types。 您可以使用TEXT
, REAL
或INTEGER
types,以适合您的需求。
直接从DOCS
SQLite没有专门用于存储date和/或时间的存储类。 相反,SQLite的内置date和时间函数能够将date和时间存储为TEXT,REAL或INTEGER值:
- TEXT作为ISO8601string(“YYYY-MM-DD HH:MM:SS.SSS”)。
- 真正的Julian日数,这是自公元前4714年11月24日格林威治中午以来的天数,根据公历日历。
- INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数。
应用程序可以select以这些格式存储date和时间,并使用内置的date和时间function在格式间自由转换。
SQLite内置的date和时间函数可以在这里find 。
SQLite没有专门用于存储date和/或时间的存储类。 相反,SQLite的内置date和时间函数能够将date和时间存储为TEXT,REAL或INTEGER值:
TEXT作为ISO8601string(“YYYY-MM-DD HH:MM:SS.SSS”)。 真正的Julian日数,这是自公元前4714年11月24日格林威治中午以来的天数,根据公历日历。 INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数。 应用程序可以select以这些格式存储date和时间,并使用内置的date和时间function在格式间自由转换。
话虽如此,我将使用INTEGER并自Unix时代(1970-01-01 00:00:00 UTC)以来存储秒。
对于几乎所有的date和时间的事情,我喜欢简化的事情,非常非常简单…下降到整数存储秒。
整数将始终作为整数在数据库,平面文件等支持。你做一些math,并将其转换为另一种types,你可以格式化date,无论如何你想要的。
这样做,当[插入当前最喜欢的数据库]replace为[未来最喜欢的数据库],而不是使用你今天select的date格式时,你不必担心。
这只是一个小小的math开销(例如,方法 – 需要两秒钟,如有必要,我会发表一个要点),并简化以后有关date/时间的大量操作。
将其存储在long
types的字段中。 请参阅Date.getTime()
和new Date(long)