【数据库】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;
相关推荐
麦聪聊数据7 分钟前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
未来之窗软件服务8 分钟前
数据库优化提速(四)新加坡房产系统开发数据库表结构—仙盟创梦IDE
数据库·数据库优化·计算机软考
Ro Jace32 分钟前
计算机专业基础教材
java·开发语言
mango_mangojuice1 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
程序员侠客行1 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
时艰.1 小时前
Java 并发编程 — 并发容器 + CPU 缓存 + Disruptor
java·开发语言·缓存
丶小鱼丶1 小时前
并发编程之【优雅地结束线程的执行】
java
市场部需要一个软件开发岗位1 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
忆~遂愿1 小时前
GE 引擎进阶:依赖图的原子性管理与异构算子协作调度
java·开发语言·人工智能
MZ_ZXD0011 小时前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php