我想在SQLite中创建一个表,其中一个字段用于日期,其中当前实例的日期和时间应该保存。我应该使用哪种数据类型?
我打算使用'timestamp'。如何将当前时间戳值插入字段?另外如何为这个日期字段写入内容值?
答案 0 :(得分:52)
SQLite支持标准SQL变量CURRENT_DATE
,CURRENT_TIME
和CURRENT_TIMESTAMP
:
INSERT INTO Date (LastModifiedTime) VALUES(CURRENT_TIMESTAMP)
SQLite中的默认data type for dates/times为TEXT
。
ContentValues
不允许使用通用SQL表达式,只允许使用固定值,因此您必须在Java中读取当前时间:
cv.put("LastModifiedTime",
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
答案 1 :(得分:21)
INSERT INTO Date (LastModifiedTime) VALUES(DateTime('now'))
使用此site作为进一步参考。
答案 2 :(得分:3)
要获取当前的本地(系统)时间,请添加“ localtime”选项:
选择datetime('now','localtime');
答案 3 :(得分:1)
我在我的应用中使用了很多时间戳。对我来说,保持时间戳的最佳方法是以毫秒为单位进行转换。之后,很容易将其转换为任何语言环境。
如果需要当前时间,请使用System.currentTimeMillis()。 内容值易于使用,您只需要字段和值,例如:
ContentValues ins_reminder = new ContentValues();
ins_reminder.put("REMIND_TIMESTAMP", System.currentTimeMillis());