领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

SQLite - 日期时间函数 - TIME(sqlite数据库日期函数)

nixiaole 2025-03-20 17:25:02 知识剖析 6 ℃

在 SQLite 中,TIME 函数主要用于处理时间相关的操作,它可以从日期时间值中提取时间部分,还能基于给定的时间值和修饰符进行时间的计算与调整。以下是对 TIME 函数使用方法的详细解释及示例。

基本语法

TIME 函数有两种常见的使用形式:

1. 提取时间部分

TIME(timestamp_value)
  • timestamp_value:这是一个日期时间字符串或者符合 SQLite 日期时间格式的表达式,函数会从该值中提取出时间部分。

2. 基于修饰符计算时间

TIME(timestamp_value, modifier1, modifier2, ...)
  • timestamp_value:同样是日期时间字符串或表达式。
  • modifier1, modifier2, ...:是可选的修饰符,用于对时间进行计算和调整。常见的修饰符如下:'+N hours':在原时间基础上加上 N 小时。'-N hours':在原时间基础上减去 N 小时。'+N minutes':在原时间基础上加上 N 分钟。'-N minutes':在原时间基础上减去 N 分钟。'+N seconds':在原时间基础上加上 N 秒。'-N seconds':在原时间基础上减去 N 秒。

使用示例

1. 提取时间部分

-- 从日期时间字符串中提取时间
SELECT TIME('2024-10-15 14:30:45');
-- 输出结果为 '14:30:45',仅提取出了时间部分

-- 从表中提取时间列的时间部分
CREATE TABLE schedules (
    schedule_id INTEGER PRIMARY KEY,
    schedule_datetime TEXT
);
INSERT INTO schedules (schedule_datetime) VALUES ('2025-03-20 09:45:00');
SELECT 
    schedule_id,
    TIME(schedule_datetime) AS schedule_time
FROM 
    schedules;
-- 会将表中 schedule_datetime 列的值提取出时间部分存储在 schedule_time 列中

2. 对时间进行加法计算

-- 在原时间基础上加上 2 小时
SELECT TIME('14:30:45', '+2 hours');
-- 输出结果为 '16:30:45'

-- 在表中对时间列进行加法计算
SELECT 
    schedule_id,
    TIME(schedule_datetime, '+1 hour 30 minutes') AS new_schedule_time
FROM 
    schedules;
-- 会将表中 schedule_datetime 列对应的时间加上 1 小时 30 分钟,结果存储在 new_schedule_time 列中

3. 对时间进行减法计算

-- 在原时间基础上减去 45 分钟
SELECT TIME('14:30:45', '-45 minutes');
-- 输出结果为 '13:45:45'

-- 在表中对时间列进行减法计算
SELECT 
    schedule_id,
    TIME(schedule_datetime, '-30 minutes') AS old_schedule_time
FROM 
    schedules;
-- 会将表中 schedule_datetime 列对应的时间减去 30 分钟,结果存储在 old_schedule_time 列中

注意事项

  • 日期时间格式:SQLite 通常使用 ISO 8601 格式(YYYY-MM-DD HH:MM:SS)来处理日期和时间。若输入的日期时间字符串不符合该格式,可能会得到不符合预期的结果。
  • 跨天处理:在进行时间计算时,若结果超出了 24 小时,会自动处理跨天的情况。例如,TIME('23:00:00', '+2 hours') 会得到 '01:00:00' ,表示第二天的凌晨 1 点。
  • 修饰符组合:可以组合使用多个修饰符,函数会按照修饰符出现的顺序依次进行计算。例如,TIME('12:00:00', '+1 hour', '-30 minutes') 会先加 1 小时,再减 30 分钟,最终结果为 '12:30:00'。

Tags:

最近发表
标签列表