SQL用于此转换
本文关键字:转换 用于 SQL | 更新日期: 2023-09-27 18:24:41
下面的查询从运行查询之日的凌晨4点开始获取数据,直到现在。
问题是,我还需要在第二天凌晨2点运行查询(以返回从前一天凌晨4点到现在的数据)-因此,查询不再有效,因为它查询的日期不对-也就是说,我总是希望查询的开始时间为当天凌晨4点,除非查询在上午12点到凌晨2点之间运行-我希望开始日期为前一天的凌晨4点。
我在winform c#程序的应用程序配置文件中有查询。如果不以编程方式发送日偏移量,是否可以修改查询以满足我的需求?
SELECT *
FROM [TraceData].[dbo].[ActiveData2]
where Timestamp >= CAST(GETDATE()-0 AS DATE) + CAST('04:00:00' AS DATETIME)
order by Timestamp DESC
这似乎是你想要的:
SELECT *
FROM [TraceData].[dbo].[ActiveData2]
where Timestamp >= CASE
WHEN CAST(CURRENT_TIMESTAMP AS TIME) BETWEEN CAST('00:00:00' AS TIME) AND CAST('02:00:00' AS TIME)
THEN CAST(GETDATE()-0 AS DATE) + CAST('04:00:00' AS DATETIME)
ELSE CAST(GETDATE()-1 AS DATE) + CAST('04:00:00' AS DATETIME)
order by Timestamp DESC
然而,在凌晨2点到4点之间,您将尝试返回未来的数据。不确定这是否是你想要的。。。