SQLite 没有专门用于存储日期和/或时间的存储类。相反,SQLite 的内置日期和时间函数能够将日期和时间存储为 TEXT、REAL 或INTEGER 值:
- TEXT 作为 ISO8601 字符串("YYYY-MM-DD HH:MM:SS.SSS")。
- REAL 作为儒略日数字,即自公元前 4714 年 11 月 24 日格林威治中午以来的天数根据公历。
- INTEGER 作为 Unix 时间,自 1970-01-01 00:00:00 UTC 以来的秒数。
应用程序可以选择以任何这些格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换。
为了与其他 SQL 数据库兼容,SQLite 允许使用其他数据库中使用的通用数据类型名称,并将它们映射到其基本 SQLite 数据类型。
下表显示了如何其他数据库中的常见日期数据类型在 SQLite 中进行解释。另请参阅:SQLite 数据类型。
数据类型语法 | 描述 |
---|---|
DATE | 相当于 NUMERIC |
DATETIME | 相当于到 NUMERIC |
TIMESTAMP | 相当于 NUMERIC |
TIME | 相当于to NUMERIC |
示例:创建一个日期数据类型的表
下面提到的语句创建一个名为Employee 包含五列:EmpID、Name、City、Age 和 Date_of_Joining.
CREATE TABLE Employee (
EmpID INT NOT NULL,
Name VARCHAR(255) NOT NULL,
City VARCHAR(100),
Age INT,
Date_of_Joining DATE
);
这将创建一个名为 Employee 的空表,其中包含五列。
示例:使用日期数据类型
考虑一个名为 Employee 的数据库表,其中包含以下记录:
EmpID | Name | City | Age | Date_of_Joining |
---|---|---|---|---|
1 | John | London | 25 | 2019-05-25 |
2 | Marry | New York | 24 | 2018-10-15 |
3 | Jo | Paris | 27 | 2017-06-09 |
4 | Kim | Amsterdam | 30 | 2014-04-21 |
5 | Ramesh | New Delhi | 28 | 2019-05-25 |
6 | Huang | Beijing | 28 | 2020-01-10 |
要获取 Employee 表中于"2019-05-25"加入组织的所有员工的数据,查询为:
SELECT * FROM Employee
WHERE Date_of_Joining = '2019-05-25';
这将产生如下所示的结果:
EmpID | Name | City | Age | Date_of_Joining |
---|---|---|---|---|
1 | John | London | 25 | 2019-05-25 |
5 | Ramesh | New Delhi | 28 | 2019-05-25 |
完整的日期和时间参考
对于所有 SQLite 日期和时间函数的完整参考,请参阅 SQLite 数据和时间参考。