android - 在 Android SQLite 中使用日期的首选方式是什么?为什么?

标签 android sqlite datetime optimization

我知道还有一个 similar question关于这个话题,但我个人对接受的答案不满意,所以这个问题也要求解释以证明首选方法的合理性。接受的答案说“推荐的做法是使用文本字段在 SQL lite 中存储日期”,但这对我来说没有意义。我的知识不足以用更明确的答案来反驳,但我的理解是字符串使用更多内存并且在计算上比整数更难处理。使用 Unix 时间戳(存储为整数)而不是文本来存储日期/时间不是更好吗?不是,与文本相比,使用 Unix 时间戳的缺点是什么?

最佳答案

就我个人而言,我不会太担心。我总是使用带有 unix 时间戳的整数,你是对的,它们会使用更少的内存。它们也很容易解释,但只精确到秒,仅此而已。如果您需要更精确的东西(毫秒等),那么您需要发挥创意。

然而,存储为纯文本很好,SQLite 没有存储日期时间的功能,因此 http://www.sqlite.org/datatype3.html#datetime 中建议的三个选项是 TEXT、REAL 和 INT

鉴于这些是他们实际告诉您的存储日期和时间的方式,并且鉴于没有官方说法更可取,我不会太担心。选择您喜欢的和最适合您需求的。

关于android - 在 Android SQLite 中使用日期的首选方式是什么?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11948529/

相关文章:

java - DateTimeFormatterBuilder 在 Java 8 中的用法,特别是可选项

android - iOS 和 Android 上的可信执行环境 (TEE)

java - Android R 文件问题和 manifest.xml 问题

android - Google 身份一键式登录异常 : Caller has been temporarily blacklisted due to too many canceled sign-in prompts

android - 如何检测两个图像 "collide"?

ruby-on-rails - ActiveRecord::StatementInvalid-SQLite3::SQLException:无此类列

python - 命令错误 : You appear not to have the 'sqlite3' program installed or on your path

android - 与服务器的连接丢失时在 Android 上备份数据的最佳方法

c# - DateTime 可以为空吗?

python - 如何根据 python (Django) 中的日期时间范围过滤对象