sql - 设置日期时间变量的时间部分

标签 sql sql-server tsql datetime

我正在处理一个自动化作业的查询。它需要查找最后一天晚上 8 点到晚上 8 点之间的所有交易。我正在考虑做这样的事情

DECLARE @start_date DATETIME
DECLARE @end_date DATETIME

SET @start_date = DATEADD(DAY, -2, GETDATE())
SET @end_date = DATEADD(DAY, -1, GETDATE())

对于自动查询,这可以很好地计算出日期部分。但变量的 TIME 部分是查询执行的当前时间。有没有一种快速简单的方法将两个变量的时间部分硬编码为晚上 8:00?

最佳答案

DECLARE @start_date DATETIME
DECLARE @end_date DATETIME

SET @start_date = DATEADD(hour, 20, DATEDIFF(DAY, 2, GETDATE()))
SET @end_date = @start_date + 1

select @start_date, @end_date

关于sql - 设置日期时间变量的时间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952207/

相关文章:

mysql - 允许 MySQL 查询的可选参数

sql - 如何在一个 PostgreSQL 查询中使用多个 WITH 语句?

mysql - 仅当列不为空时才匹配列

sql-server - 是否有一种快速删除 Service Broker 队列的方法

sql-server - SQL Server 2012 - 如何根据其他列更新具有分组运行编号的列?

sql - 消除具有相反值的行

sql-server - 如何将数据从 SQL Server 传输到 Excel

sql - 带有两个表的价格匹配的 Postgres 查询问题

sql - 为什么 json_value 返回 null?

sql舍入并不总是向上舍入