在 SQLite 中给时间加 1 天有几种方法:
1. 使用 DATE() 函数(推荐)
sql
-- 当前时间加1天
SELECT DATE('now', '+1 day');
-- 指定日期加1天
SELECT DATE('2023-12-01', '+1 day');
2. 使用 DATETIME() 函数(带时间)
sql
-- 当前日期时间加1天
SELECT DATETIME('now', '+1 day');
-- 指定日期时间加1天
SELECT DATETIME('2023-12-01 14:30:00', '+1 day');
3. 更新表中的数据
sql
-- 更新某个字段加1天
UPDATE 表名
SET 时间字段 = DATE(时间字段, '+1 day')
WHERE 条件;
-- 示例
UPDATE orders
SET delivery_date = DATE(delivery_date, '+1 day')
WHERE order_id = 123;
4. 多个时间单位组合
sql
-- 加1天2小时30分钟
SELECT DATETIME('now', '+1 day', '+2 hours', '+30 minutes');
-- 加1周
SELECT DATE('now', '+7 days');
5. 在查询中使用
sql
-- 查询未来1天的记录
SELECT * FROM events
WHERE event_date >= DATE('now')
AND event_date <= DATE('now', '+1 day');
-- 计算两个日期相差的天数
SELECT JULIANDAY(end_date) - JULIANDAY(start_date) AS days_diff
FROM projects;
注意事项:
- SQLite 的日期函数使用 ISO8601 格式:
YYYY-MM-DD HH:MM:SS DATE()函数返回日期部分DATETIME()函数返回完整的日期时间- 也可以使用
JULIANDAY()函数进行更精确的计算
实际应用示例:
sql
-- 计算发票的到期日(30天后)
SELECT invoice_date,
DATE(invoice_date, '+30 days') AS due_date
FROM invoices;
-- 续订会员(当前到期日加1年)
UPDATE members
SET expiry_date = DATE(expiry_date, '+1 year')
WHERE member_id = 456;