yzf86211861 2024-12-26 09:01 采纳率: 0%
浏览 14

班次SQL区分划分发

请教一下 这个时间班次SQL语句怎么实现好
想得到的列 日期
2024-12-24-早班 2024/12/24 13:25:51
2024-12-20-夜班 2024/12/20 21:58:15
2024-12-19-夜班 2024/12/20 2:47:31
2024-12-21-早班 2024/12/21 18:00:02
2024-12-21-早班 2024/12/21 17:59:44
2024-12-24-早班 2024/12/24 13:26:29
2024-12-19-夜班 2024/12/20 0:20:27
2024-12-21-早班 2024/12/21 17:59:25
2024-12-22-早班 2024/12/22 8:58:50

就是早上 7:30到 晚上7.30划分班次的.

  • 写回答

3条回答 默认 最新

  • 趣享先生 优质创作者: 编程框架技术领域 2024-12-26 09:19
    关注

    该回答参考ChatGPT,由吾为汝整理提供如若有用,还请题主采纳!

    要在Oracle数据库中实现根据时间划分班次的SQL语句,可以使用CASE语句来判断时间,并根据判断结果生成相应的班次。根据你的需求,早班的时间范围是早上7:30到晚上7:30,夜班则是晚上7:30到第二天早上7:30。

    以下是一个示例SQL语句,假设你的表名为your_table,并且时间戳列名为timestamp_column

    SELECT 
        TO_CHAR(timestamp_column, 'YYYY-MM-DD') || '-' || 
        CASE 
            WHEN TO_CHAR(timestamp_column, 'HH24:MI') >= '07:30' AND TO_CHAR(timestamp_column, 'HH24:MI') < '19:30' THEN '早班'
            ELSE '夜班'
        END AS 班次,
        timestamp_column
    FROM 
        your_table
    ORDER BY 
        timestamp_column;
    

    解释:

    1. TO_CHAR(timestamp_column, 'YYYY-MM-DD'):将时间戳格式化为日期格式。
    2. CASE语句:根据时间判断是早班还是夜班。
      • 如果时间在07:30到19:30之间,返回“早班”。
      • 否则返回“夜班”。
    3. timestamp_column:返回原始的时间戳。
    4. ORDER BY timestamp_column:按时间戳排序结果。

    注意:

    • 请根据实际的表名和列名替换your_tabletimestamp_column
    • 如果需要将夜班的日期调整为第二天,可以在CASE语句中进一步处理。

    希望这个SQL语句能满足你的需求!如果有其他问题,欢迎继续提问。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月26日