SQLite 向 SQLite 数据库插入日期时间
在本文中,我们将介绍如何向 SQLite 数据库插入日期时间。
阅读更多:SQLite 教程
日期时间在SQLite中的存储格式
在SQLite中,日期时间可以存储为文本或数值。常见的日期时间格式包括:
- 文本格式:YYYY-MM-DD HH:MM:SS
- 数值格式:Unix时间戳,表示自1970年1月1日以来的秒数
SQLite提供了一些内置的日期和时间函数,可以用于处理和操作日期时间数据。
插入当前日期时间
要向SQLite数据库中插入当前的日期时间,可以使用datetime('now')函数。
示例如下:
import sqlite3
from datetime import datetime
# 连接数据库
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 创建数据表
cursor.execute('''CREATE TABLE IF NOT EXISTS mytable
(id INTEGER PRIMARY KEY AUTOINCREMENT,
created_at TEXT)''')
# 获取当前日期时间
now = datetime.now()
# 插入当前日期时间
cursor.execute("INSERT INTO mytable (created_at) VALUES (?)", (now,))
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
在以上示例中,首先我们连接到SQLite数据库并创建一个数据表mytable。然后,获取当前日期时间并使用INSERT语句将其插入到数据表中。
插入指定日期时间
要向SQLite数据库中插入指定的日期时间,可以使用字符串格式的日期时间。
示例如下:
import sqlite3
# 连接数据库
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 创建数据表
cursor.execute('''CREATE TABLE IF NOT EXISTS mytable
(id INTEGER PRIMARY KEY AUTOINCREMENT,
created_at TEXT)''')
# 插入指定日期时间
cursor.execute("INSERT INTO mytable (created_at) VALUES ('2022-01-01 12:00:00')")
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
在以上示例中,我们通过INSERT语句插入了一个指定的日期时间’2022-01-01 12:00:00’。
使用事务批量插入
如果需要一次性插入大量的日期时间数据,为了提高插入的效率,可以使用事务批量插入。
示例如下:
import sqlite3
from datetime import datetime
# 连接数据库
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 创建数据表
cursor.execute('''CREATE TABLE IF NOT EXISTS mytable
(id INTEGER PRIMARY KEY AUTOINCREMENT,
created_at TEXT)''')
# 开始事务
cursor.execute("BEGIN TRANSACTION")
# 批量插入日期时间
for i in range(10000):
now = datetime.now()
cursor.execute("INSERT INTO mytable (created_at) VALUES (?)", (now,))
# 提交事务
cursor.execute("COMMIT")
# 关闭数据库连接
conn.close()
在以上示例中,我们使用了事务开始语句BEGIN TRANSACTION和事务提交语句COMMIT,将一次性插入的10000条日期时间数据作为一个事务处理,以提高插入的效率。
总结
本文介绍了如何向SQLite数据库插入日期时间数据。我们可以使用内置的日期和时间函数,或者直接使用文本或数值格式的日期时间数据进行插入。此外,我们还学习了如何使用事务批量插入大量的日期时间数据,以提高插入的效率。
SQLite是一个非常灵活和轻量级的数据库引擎,广泛应用于各种应用程序和嵌入式设备中。通过掌握SQLite的日期时间插入操作,我们可以更好地处理和管理日期时间数据。
极客教程