我正在尝试首先运行子查询以获取特定日期,然后我想使用该日期作为起始点来获取该日期的最后24小时。这是我想首先作为子查询运行的查询
select ID, FullDatetime from myTable
where selectedDate = 0900 and DT = CONVERT(date, getdate())
然后我想使用上面查询的结果从selectedDate生成最后24小时。请注意,所有数据都在同一张表中。我想运行另一个查询,它给出了上面selectDate的最后24小时。 FullDatetime的数据类型是datetime。请帮忙。感谢
答案 0 :(得分:2)
您可以使用子查询两次来获取用于过滤日期的日期:
SELECT * FROM myTable
WHERE datevalue BETWEEN (SELECT TOP 1 selectedDate FROM myTable WHERE a = b)
AND DATEADD(hh, -24, (SELECT TOP 1 selectedDate FROM myTable WHERE a = b))
答案 1 :(得分:2)
select ID, dateadd(hh, -24, FullDatetime) from myTable /* or (dd, -1, ...) */
where selectedDate = 0900 /* did you mean '0900'? */
and DT = CONVERT(date, getdate())
我怀疑你也可以通过直接计算来完全避免查询:
select dateadd(hh, -15, {fn current_date()})