【数据库】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;
相关推荐
Sammyyyyy18 分钟前
Rust 1.92.0 发布:Never Type 进一步稳定
java·算法·rust
alonewolf_9928 分钟前
深入解析G1与ZGC垃圾收集器:原理、调优与选型指南
java·jvm·算法
小镇学者30 分钟前
【c++】C++字符串删除末尾字符的三种实现方法
java·开发语言·c++
rfidunion31 分钟前
springboot+VUE+部署(1。新建项目)
java·vue.js·spring boot
小翰子_31 分钟前
Spring Boot整合Sharding-JDBC实现日志表按月按周分表实战
java·spring boot·后端
weixin_3993806939 分钟前
OA 系统假死问题分析与优化
java·运维
豆沙沙包?1 小时前
2026年--Lc334-2130. 链表最大孪生和(链表转数组)--java版
java·数据结构·链表
施嘉伟1 小时前
一次生产环境 SQL 不走索引的排查过程
数据库·sql
柒.梧.1 小时前
SSM常见核心面试问题深度解析
java·spring·面试·职场和发展·mybatis
踏浪无痕1 小时前
SQLInsight:从JDBC底层到API调用的零侵入SQL监控方案
数据库·后端·开源