使用SQL从所选日期过去24小时

时间:2015-02-18 15:33:06

标签: sql sql-server tsql

我正在尝试首先运行子查询以获取特定日期,然后我想使用该日期作为起始点来获取该日期的最后24小时。这是我想首先作为子查询运行的查询

select ID, FullDatetime from myTable 
where selectedDate = 0900 and DT = CONVERT(date, getdate())

然后我想使用上面查询的结果从selectedDate生成最后24小时。请注意,所有数据都在同一张表中。我想运行另一个查询,它给出了上面selectDate的最后24小时。 FullDatetime的数据类型是datetime。请帮忙。感谢

2 个答案:

答案 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()})