【发布时间】:2021-07-27 02:25:14
【问题描述】:
我的 SQL 表是这样的
Start_Time Query
21:00:00 Exec plugin1;
21:02:00 Exec plugin2;
21:04:00 Exec plugin3;
当我运行以下查询时,我得到一个空结果
SELECT Query
FROM [test].[dbo].[schedule]
WHERE Start_Time IN ( SELECT CONVERT(VARCHAR(5), GETDATE(), 108));
我也试过
SELECT Query
FROM [test].[dbo].[schedule]
WHERE Start_Time IN (select cast(CAST(GETDATE() as time) as varchar(5)));
如果Start_Time 等于我当前的系统时间,我如何让它返回Query。
我正在尝试创建一个每分钟运行一次的 SSIS 任务,并检查时间是否等于当前时间(以 HH:MM 为单位),如果是,则返回查询并进一步执行。
注意:时间采用 24 小时格式。
【问题讨论】:
-
请说明您要实现的逻辑。
-
我不明白:当前时间等于到毫秒的可能性有多大?你预计会发生什么
-
@Charlieface 是的,当 sql 查询执行时,它不太可能精确到毫秒。所以,如果它可以匹配到分钟(HH:MM),我认为应该可以
-
你可能想要
WHERE Start_Time BETWEEN TIMEFROMPARTS(DATEPART(hh, GETDATE()), DATEPART(mi, GETDATE(), 0, 0, 0) AND DATEADD(mi, 1, TIMEFROMPARTS(DATEPART(hh, GETDATE()), DATEPART(mi, GETDATE(), 0, 0, 0))
标签: sql sql-server time where-in