如何通过java在sqlite中插入日期
我想创建一个数据库,可以在其中保存日期(SQLite)。现在首先要问的是,声明日期列的正确语法是什么。我想知道的第二个是如何在那之后插入日期。我想知道的第三件事是如何在其中选择日期,例如选择包含01/05/2010和05/06/2010之间日期的所有行。
谢谢
我想创建一个数据库,可以在其中保存日期(SQLite)。现在首先要问的是,声明日期列的正确语法是什么。我想知道的第二个是如何在那之后插入日期。我想知道的第三件事是如何在其中选择日期,例如选择包含01/05/2010和05/06/2010之间日期的所有行。
谢谢
现在首先要问的是,声明日期列的正确语法是什么。
1.2 日期和时间数据类型
SQLite 没有为存储日期和/或时间预留存储类。相反,SQLite的内置日期和时间函数能够将日期和时间存储为TEXT,REAL或INTEQUE值:
- 文本作为 ISO8601 字符串 (“YYYY-MM-DD HH:MM:SS.SSS”)。
- REAL作为儒略日数字,自公元前4714年11月24日在格林威治根据公历的十一月24日中午以来的天数。
- INTEGER 作为 Unix 时间,自 1970-01-01 00:00:00 UTC 以来的秒数。
应用程序可以选择以任何这些格式存储日期和时间,并使用内置的日期和时间功能在格式之间自由转换。
任您挑选。我会选择TEXT或INTEQUE。整数会更快。如果您需要存储1970年以后的日期(例如出生日期等),那么我会选择TEXT。如果您只需要存储现在和将来的创建时间/修改时间等,那么请选择INTEGER。
我想知道的第二个是如何在那之后插入日期。
分别使用 PreparedStatement#setString()
或 #setLong()。
我想知道的第三件事是如何在其中选择日期,例如选择包含01/05/2010和05/06/2010之间日期的所有行。
为此,请使用标准 SQL 子句。首先需要使用内置的日期和时间函数相应地转换日期。BETWEEN
声明日期列的便捷语法如下所示:
"CREATE TABLE "
+ "my_table"
+ "(date_time "
+ " DATETIME DEFAULT CURRENT_TIMESTAMP);");
这将默认插入到当前日期时间的值。或者,您可以使用CURRENT_DATE值或CURRENT_TIME值。您不必在每次创建行时都手动插入时间戳。
您可以在此处阅读有关此方法的信息:Android 在 SQLite 数据库中插入日期时间值