42

我想在 SQLite 中创建一个表,其中一个字段是日期,当前实例的日期和时间应该保存在其中。我应该使用哪种数据类型?

我打算使用“时间戳”。如何将当前时间戳值插入字段?另外如何为此日期字段编写内容值?

4

5 回答 5

72

SQLite 支持标准 SQL 变量CURRENT_DATECURRENT_TIMECURRENT_TIMESTAMP

INSERT INTO Date (LastModifiedTime) VALUES(CURRENT_TIMESTAMP)

SQLite 中日期/时间的默认数据类型是TEXT.

ContentValues不允许使用通用 SQL 表达式,只能使用固定值,因此您必须在 Java 中读取当前时间:

cv.put("LastModifiedTime",
       new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
于 2013-03-18T09:45:00.127 回答
26
INSERT INTO Date (LastModifiedTime) VALUES(DateTime('now'))

使用此站点以供进一步参考。

于 2013-03-18T09:30:27.910 回答
5

要获取当前本地(系统)时间,请添加 'localtime' 选项:

选择日期时间('现在','本地时间');

于 2018-07-13T17:32:46.510 回答
1

我在我的应用程序中经常使用时间戳。对我来说,保持时间戳的最佳方式是以毫秒为单位进行转换。之后,很容易将其转换为任何语言环境。

如果您需要当前时间,请使用 System.currentTimeMillis()。内容值很容易使用,你只需加上字段和值,比如:

ContentValues ins_reminder = new ContentValues();
ins_reminder.put("REMIND_TIMESTAMP", System.currentTimeMillis());
于 2013-03-18T17:04:17.530 回答
0

从 SQLite 3.38.0 开始,有一个unixepoch()函数以整数形式返回 UNIX 时间戳。做同样的事情strftime('%s')

参考:

于 2022-02-21T17:23:48.183 回答