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

如何在SQL查询中仅返回每日16:00的SCHDATE数据

筛选指定时刻的日期数据

现有查询语句

Date1 = '01.01.2024';
Date2 = 'SYS_CURRENTDATE';

SELECT SCHDATE 
FROM mytable
WHERE SCHDATE >= Date1
  AND SCHDATE < Date2;

现有查询结果

01.01.2024 00:00:00
01.01.2024 08:00:00
01.01.2024 16:00:00
02.01.2024 00:00:00
02.01.2024 08:00:00
02.01.2024 16:00:00

修改需求

调整查询逻辑,仅返回所有日期中16:00时刻的SCHDATE数据,期望结果如下:

01.01.2024 16:00:00
02.01.2024 16:00:00
03.01.2024 16:00:00
04.01.2024 16:00:00

修改后的查询语句

不同数据库提取时间部分的函数存在差异,以下是几种主流数据库的实现方案:

MySQL/MariaDB

SET @Date1 = '01.01.2024';
SET @Date2 = CURDATE();

SELECT SCHDATE 
FROM mytable
WHERE SCHDATE >= @Date1
  AND SCHDATE < @Date2
  AND TIME(SCHDATE) = '16:00:00';

Oracle

DEFINE Date1 = '01.01.2024';
DEFINE Date2 = SYSDATE;

SELECT SCHDATE 
FROM mytable
WHERE SCHDATE >= TO_DATE(&Date1, 'DD.MM.YYYY')
  AND SCHDATE < &Date2
  AND TO_CHAR(SCHDATE, 'HH24:MI:SS') = '16:00:00';

SQL Server

DECLARE @Date1 DATE = '01.01.2024';
DECLARE @Date2 DATE = GETDATE();

SELECT SCHDATE 
FROM mytable
WHERE SCHDATE >= @Date1
  AND SCHDATE < @Date2
  AND CAST(SCHDATE AS TIME) = '16:00:00';

逻辑说明

在原有日期范围筛选的基础上,新增对SCHDATE字段时间部分的校验,确保仅保留小时为16、分钟和秒均为00的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:14:58