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

MSSQL中实现时间戳早于7点显示前一天日期的SQL查询

MSSQL 按时间规则生成自定义日期字段

可以通过CASE条件判断结合日期函数实现需求,以下是具体SQL查询语句:

SELECT 
    Source,
    Message,
    TimeStamp,
    FORMAT(
        CASE 
            WHEN CAST(TimeStamp AS TIME) < '07:00:00' THEN DATEADD(DAY, -1, CAST(TimeStamp AS DATE))
            ELSE CAST(TimeStamp AS DATE)
        END,
        'yyyy/MM/dd'
    ) AS Date
FROM 
    YourTableName;

语句解释:

  • 时间判断:CAST(TimeStamp AS TIME) < '07:00:00' 将TimeStamp转换为时间类型,直接与7点整的时间做比较,判断是否早于7点。
  • 日期计算:
    • 若时间早于7点,通过DATEADD(DAY, -1, CAST(TimeStamp AS DATE))将TimeStamp的日期部分减1天,得到前一天的日期。
    • 若时间在7点及之后,直接提取TimeStamp的日期部分。
  • 格式转换:FORMAT(..., 'yyyy/MM/dd')将计算后的日期转换为YYYY/MM/DD的字符串格式,匹配输出要求。

示例验证

针对提供的测试数据:

SourceMessageTimeStamp
Alarm消息2022-12-12 06:59:00.00000
Alarm2消息22022-12-12 07:01:00.00000

执行上述查询后,会得到期望结果:

SourceMessageTimeStampDate
Alarm消息2022-12-12 06:59:00.000002022/12/11
Alarm2消息22022-12-12 07:01:00.000002022/12/12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:05:19