我需要针对特定日期调整三个查询以适应不同的时区。这些查询从前一天、日期范围和当天提取交易数据。服务器时间是格林威治标准时间,查询目前可以正常工作,以根据格林威治标准时间服务器时间提取交易数据。这一天从格林威治标准时间 00:00 开始,当然是基于服务器时间的日历日。但是,我需要查询从格林威治标准时间 12:00 开始,而不是格林威治标准时间 00:00。查询如下(TransactionDate 字段的数据类型是日期时间):
查询 1 该查询从前一天提取特定客户的交易摘要,查询的 WHERE 子句如下:
WHERE TransactionDate >= DateAdd(DD, DateDiff(DD, 0, GETDATE())-1, 0) AND TransactionDate < DateAdd(DD, DateDiff(DD, 0, GETDATE()), 0)
查询 2 此查询有两个日期参数,并为所提供的日期范围提供相同的交易数据。查询的 WHERE 子句如下:
WHERE TransactionDate BETWEEN @StartDateParam AND @EndDateParam
查询 3 最后一个查询拉取特定客户当天的交易摘要,查询的 WHERE 子句如下:
WHERE TransactionDate >= CONVERT(CHAR(10),GETDATE(),120)
同样,这些查询适用于当前的 GMT 服务器时间。有人可以为我提供正确的方法来调整每个查询中的日期时间字段的时间元素,以便时段从格林威治标准时间 15:00 开始,而不是当前格林威治标准时间 00:00 开始时间。
在此先感谢您的帮助。