【数据库】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;
相关推荐
小手cool13 分钟前
JSON.parseObject 返回 List 时不能强制转换的解决方案
java·json·list
凯酱1 小时前
MyBatis 中 OGNL 的使用:从入门到实战
java·tomcat·mybatis
Data_Journal7 小时前
用于网页抓取的 Node-unblocker
大数据·开发语言·数据库·python·scrapy
吴声子夜歌7 小时前
Java面试——算法
java·算法·面试
涤生大数据7 小时前
一次“没有运行日志”的DolphinScheduler任务失败排查
大数据·数据库·人工智能·状态模式
专注API从业者7 小时前
告别人工盯品!借助 Open Claw 搭建电商商品自动化监控与数据分析系统(完整可运行源码)
大数据·运维·数据库·数据分析·自动化
evans在进步8 小时前
LeetCode 64:最小路径和——Java 原地动态规划详解
java·leetcode·动态规划
viskaz8 小时前
数据库迁移流程学习
数据库
auspicious航9 小时前
PostgreSQL写入慢全攻略:原因排查与性能调优实战
数据库·postgresql
凤山老林9 小时前
Spring Boot 3.x AOT 编译实战:从原理、踩坑到生产落地
java·spring boot·后端