我对如何在Android中的SQLite数据库中存储date $ time感到有点困惑。 我需要存储当前日期和时间在我的数据库表中的时间。
这样:
1)在表格中创建日期/时间列时使用哪种类型? 2)如何根据所选的列类型获取当前日期/时间并将其存储到数据库表中?
关于第1点)有些人说使用文本类型,有些人说使用int和其他一些用于日期时间.....但SQLite 3建议存储日期/时间如下:
我看不出SQLite支持datetime类型。 SQLite支持的唯一类型是:null,integer,real,text和blob(因此这里没有列出datetime)。
所以我不明白为什么here
它表示使用DATETIME作为列类型,并在创建数据库表时将默认值设置为DEFAULT CURRENT_TIMESTAMP。
将其存储为毫秒,问题是时区丢失了。在这种情况下,据说单独保存,我不知道如何摆脱这个......
关于第2点),我想到了几种方法....使用DATETIME('now')或System.currentTimeMillis()......但我不知道它是否是最佳方式....
我怎样摆脱这个?
答案 0 :(得分:2)
https://www.sqlite.org/datatype3.html 1。1日期和时间数据类型的文档 说根据sqlite的日期和时间函数的用法,它将日期和时间值存储在几种字段类型中。他们给你解释的类型。
此外,文档在https://www.sqlite.org/lang_datefunc.html说您可以使用DATETIME函数创建日期时间字符串值。还包括时区。
希望有所帮助。我更喜欢使用unix时间戳和分隔的时区值。因为您可以创建日期对象缓动器。
答案 1 :(得分:2)
Sqlite默认情况下,以utc格式保存日期时间yyyy-mm-dd hh:mm:ss, 您可以将datetime类型列中的值保存为当前时间的current_timestamp。您 可以在本地时区获取日期时间作为查询 -
datetime('now','localtime');// for current time