Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL获取从选定日期算起的最后24小时_Sql_Sql Server_Tsql - Fatal编程技术网

使用SQL获取从选定日期算起的最后24小时

使用SQL获取从选定日期算起的最后24小时,sql,sql-server,tsql,Sql,Sql Server,Tsql,我试图先运行子查询以获取特定的日期,然后我想使用该日期作为起点来获取该日期后的最后24小时。下面是我想首先作为子查询运行的查询 select ID, FullDatetime from myTable where selectedDate = 0900 and DT = CONVERT(date, getdate()) 然后,我想使用上面查询的结果从所选日期生成最后24小时。请注意,所有数据都在同一个表中。我想运行另一个查询,该查询提供上述选定日期的最后24小时。FullDatetime的数

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

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

然后,我想使用上面查询的结果从所选日期生成最后24小时。请注意,所有数据都在同一个表中。我想运行另一个查询,该查询提供上述选定日期的最后24小时。FullDatetime的数据类型为datetime。请帮忙。谢谢

您可以使用子查询两次来获取筛选日期所基于的日期:

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))
我想您也可以通过直接计算来完全避免查询:

select dateadd(hh, -15, {fn current_date()})

使用DATEDIFF或DateAdd您尝试了什么?SelectedDate是要与900进行比较的字符串还是数字类型?关于军事时间过去24或48小时的问题太多了;声明@FullDateTime为DateTime;从myTable中选择@Id=Id、@FullDateTime=FullDateTime,其中selectedDate=0900+0和DT=CONVERTdate、getdate;选择哪里还是要加入子查询以允许多个结果?谢谢,但我需要先运行子查询,并使用子查询中的selectedDate作为起点来生成我在初始帖子中发布的最后24小时
select dateadd(hh, -15, {fn current_date()})