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

如何在Microsoft SQL Server 2014中查询特定时段(如6:15-7:15)的数据?

解决SQL Server中当天指定时段的数据查询问题

核心思路

直接基于时间区间的精确比较筛选数据,逻辑和你在PLC梯形图里的区间判断一致,直观好理解,完全适配SQL Server语法。

单个时段查询示例

比如查询当天6:15:00 至7:15:00的数据:

SELECT *
FROM [table]
WHERE t_stamp >= CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '06:15:00'
  AND t_stamp <= CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '07:15:00'

查询当天7:15:01 至8:15:00的数据:

SELECT *
FROM [table]
WHERE t_stamp >= CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '07:15:01'
  AND t_stamp <= CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '08:15:00'

多个时段合并查询

如果要一次性获取多个时段的数据,用OR连接多个区间条件即可:

SELECT *
FROM [table]
WHERE 
  -- 第一个时段:6:15-7:15
  (t_stamp >= CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '06:15:00'
   AND t_stamp <= CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '07:15:00')
  OR
  -- 第二个时段:7:15:01-8:15
  (t_stamp >= CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '07:15:01'
   AND t_stamp <= CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '08:15:00')

关键逻辑解释

  1. CAST(GETDATE() AS DATE):提取当前系统的纯日期(仅年-月-日,不带时分秒)
  2. 将纯日期转为DATETIME类型后,加上具体时分秒字符串,就能得到当天的精确起始/结束时间点(比如今天的6:15就是2024-05-20 06:15:00)
  3. 用>=和<=直接判断t_stamp是否落在目标区间,完美匹配你需要的精确时段,解决了原语句只能按整小时筛选的问题

补充说明

你之前看到的unix_timestamp是MySQL等其他数据库的专属函数,SQL Server不支持,无需尝试。上面的时间区间方法是SQL Server处理这类需求最直接、易上手的方式,和你熟悉的PLC梯形图逻辑思路完全对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:15:30