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

如何在Redshift中从datetime提取时间判断早于/晚于指定时间?

Redshift判断Datetime是否早于/晚于下午3点的实现方法

核心思路

通过Redshift的日期函数提取时间的小时部分(24小时制),再用CASE分支逻辑返回对应的判断结果。

场景1:date_time为datetime类型

如果你的date_time列本身是Redshift支持的datetime/timestamp类型,直接使用以下查询:

SELECT 
    date_time,
    CASE
        WHEN EXTRACT(HOUR FROM date_time) < 15 THEN 'before 3PM'
        ELSE 'after 3PM'
    END AS time_check
FROM your_table;
  • EXTRACT(HOUR FROM date_time):从时间列中提取24小时制的小时数,下午3点对应数值15
  • CASE语句:根据小时数判断,小于15则标记为before 3PM,否则标记为after 3PM

场景2:date_time为字符串类型

如果date_time是字符串格式(如示例中的14 March, 2023, 12:21),需要先将其转换为timestamp类型再处理:

SELECT 
    date_time,
    CASE
        WHEN EXTRACT(HOUR FROM TO_TIMESTAMP(date_time, 'DD Month, YYYY, HH24:MI')) < 15 THEN 'before 3PM'
        ELSE 'after 3PM'
    END AS time_check
FROM your_table;
  • TO_TIMESTAMP(date_time, 'DD Month, YYYY, HH24:MI'):按照指定格式将字符串转换为timestamp类型,格式串与示例中的日期格式完全匹配
  • 后续逻辑同场景1,提取小时数后进行判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 23:05:08