【数据库】SQLite 时间加1天的方法总结

在 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;
相关推荐
IvorySQL5 小时前
PG 日报|新增 VACUUM 全维度统计信息补丁迭代
数据库·人工智能·postgresql·ivorysql
wuqingshun3141596 小时前
什么是责任链模式,一般用在什么场景?
java·责任链模式
:-)7 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
wuqingshun3141597 小时前
说一下消息队列的模型有哪些?
java
白露与泡影8 小时前
Redis 缓存实战:雪崩、穿透、击穿一次讲透
数据库·redis·缓存
fīɡЙtīиɡ ℡8 小时前
布隆过滤器
java
yaoxin5211239 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
赵渝强老师9 小时前
【赵渝强老师】使用Oracle可传输的表空间迁移数据
数据库·oracle
IpdataCloud10 小时前
跨区服玩家延迟高怎么办?用IP离线库自动分配到最近服务器
数据库·tcp/ip·github·php·ip
wuqingshun31415911 小时前
MYSQL的乐观锁和悲观锁是什么?
java