SQLite 日期默认值

在SQLite数据库中,我们经常需要存储日期和时间信息。当创建表时,我们可以为日期字段指定默认值。在本文中,我们将详细讨论在SQLite中设置日期默认值的方法。
SQLite日期数据类型
在SQLite中,有几种日期数据类型可以用来存储日期和时间信息。以下是一些常用的日期数据类型:
- TEXT:用于存储文本格式的日期和时间,例如”YYYY-MM-DD HH:MM:SS”。
- INTEGER:用于存储以Unix时间戳格式表示的日期和时间。
- REAL:用于存储浮点表示的日期和时间。
- NUMERIC:用于存储日期和时间的数字值。
在本文中,我们将使用TEXT类型来存储日期时间信息。
设置日期默认值
要为SQLite表的日期字段设置默认值,我们可以在创建表时使用DEFAULT关键字。以下是一个示例表的SQL语句,其中created_at列的默认值为当前日期和时间:
CREATE TABLE items (
id INTEGER PRIMARY KEY,
name TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
在上面的示例中,created_at列的默认值为CURRENT_TIMESTAMP,即当前日期和时间。每当我们向items表插入新记录时,如果没有指定created_at的值,它将自动设置为当前日期和时间。
示例代码
让我们通过一个简单的示例来演示如何在SQLite中设置日期默认值。以下是一个Python程序,它使用SQLite数据库来创建一个名为tasks的表,该表包含一个task_name列和一个created_at列,created_at列的默认值为当前日期和时间:
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('sample.db')
cursor = conn.cursor()
# 创建tasks表
cursor.execute('''
CREATE TABLE tasks (
id INTEGER PRIMARY KEY,
task_name TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
''')
# 插入一条记录
cursor.execute("INSERT INTO tasks (task_name) VALUES ('Task 1')")
# 提交更改并关闭连接
conn.commit()
conn.close()
在上面的示例中,我们首先连接到SQLite数据库并创建一个名为tasks的表。在创建表时,我们为created_at列指定了默认值CURRENT_TIMESTAMP。然后我们插入一条记录到tasks表中,未指定created_at的值,因此它将使用默认值。最后,我们提交更改并关闭数据库连接。
运行结果
当我们运行上面的示例代码后,将会创建一个名为sample.db的SQLite数据库文件,并在其中创建一个tasks表。我们可以使用SQLite客户端工具或编写查询来查看插入的记录。以下是查询tasks表中数据的示例输出:
sqlite> SELECT * FROM tasks;
1|Task 1|2022-10-12 10:00:00
如上所示,我们成功地插入了一条记录到tasks表,created_at列的默认值为当前日期和时间。
总结
在SQLite中设置日期默认值是非常简单的。通过使用DEFAULT关键字和CURRENT_TIMESTAMP函数,我们可以轻松地指定日期字段的默认值为当前日期和时间。这样可以减少手动输入日期时间的工作量,提高数据插入的效率。
极客教程