You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SQL将整数类型的时间字段转换为标准时间格式

将整数类型的时间字段转换为常规时间格式(SQL实现)

我的数据表中,日期和时间字段均为整数数据类型,已完成日期字段的转换,现需将整数格式的时间(如830对应8:30 AM,1330对应1:30 PM)转换为带AM/PM标识的常规时间格式,示例数据如下:

AppointmentDateAppointmentTimeNewDateNewTime
202303298303/29/20238:30 AM
2023051613305/16/20231:30 PM
2023040315004/3/20233:00 PM
2023032910203/29/202310:20 AM

不同SQL数据库的实现方法

1. MySQL/MariaDB

通过字符串补位、时间转换与格式化函数组合实现:

SELECT 
    AppointmentTime,
    DATE_FORMAT(
        STR_TO_DATE(
            LPAD(AppointmentTime, 4, '0'), -- 补前导零,将830转为0830
            '%H%i'
        ),
        '%h:%i %p' -- 格式化为带AM/PM的时间样式
    ) AS NewTime
FROM your_table;

2. SQL Server

利用字符串拼接、时间类型转换与格式化函数:

SELECT 
    AppointmentTime,
    FORMAT(
        CAST(
            STUFF(RIGHT('0' + CAST(AppointmentTime AS VARCHAR(4)), 4), 3, 0, ':')
            AS TIME
        ),
        'h:mm tt'
    ) AS NewTime
FROM your_table;

先补前导零至4位,再在第3位插入冒号将字符串转为时间格式,最后格式化输出带AM/PM的样式。

3. Oracle

通过TO_DATE和TO_CHAR函数组合处理:

SELECT 
    AppointmentTime,
    TO_CHAR(
        TO_DATE(
            LPAD(AppointmentTime, 4, '0'),
            'HH24MI'
        ),
        'HH:MI AM'
    ) AS NewTime
FROM your_table;

按24小时制解析补位后的时间字符串,再转换为12小时制带AM/PM的格式。

4. PostgreSQL

结合文本处理、时间戳转换与格式化函数:

SELECT 
    AppointmentTime,
    TO_CHAR(
        TO_TIMESTAMP(
            LPAD(AppointmentTime::TEXT, 4, '0'),
            'HH24MI'
        ),
        'HH12:MI AM'
    ) AS NewTime
FROM your_table;

将整数转为文本并补位,解析为时间戳后格式化输出目标样式。

内容的提问来源于stack exchange,提问作者user3691608

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:27:43