【数据库】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;
相关推荐
BBB努力学习程序设计2 小时前
Java异常处理机制:从基础到高级实践指南
java
曹牧2 小时前
Java:Jackson库序列化对象
java·开发语言·python
先做个垃圾出来………2 小时前
SQL字符串函数
数据库·sql
中国胖子风清扬2 小时前
Spring AI 深度实践:在 Java 项目中统一 Chat、RAG、Tools 与 MCP 能力
java·人工智能·spring boot·后端·spring·spring cloud·ai
if时光重来2 小时前
kingbase数据库解决执行更新字段时锁表问题
数据库·kingbase
前端小臻2 小时前
数据库表设计的流程(包含设计流程、建立数据库模型以及使用dbword导出数据库文档)
数据库
零一科技2 小时前
Spring AOP 底层实现:JDK 动态代理与 CGLIB 代理的那点事儿
java·后端·spring
头发还在的女程序员2 小时前
陪诊小程序成品|陪诊系统功能|陪诊系统功能(源码)
java·小程序·his系统
数据库知识分享者小北2 小时前
Dify+ADB Supabase+LLM 实现 AI 客服系统
数据库·人工智能·阿里云·adb·postgresql