从sql中的所选日期获取接下来24小时的所有数据

时间:2015-03-14 05:43:46

标签: sql sql-server tsql

我正在尝试从选定日期获取接下来24小时内的所有数据。我不想提取2015年3月12日之前的任何数据,但我需要从此日期3/12/2015开始的接下来24小时内的所有数据。我知道我必须自己加入桌子,但不知道该怎么做。下面的查询从选定日期开始过去24小时,但我需要相反的,接下来的24小时。请帮忙

select 
    mt1.ID, mt1.Name, mt1.FullDateTime
from 
    myTable mt1
inner join 
    myTable mt2 on mt1.FullDateTime between DATEADD(hour, -24, mt2.FullDateTime) and mt2.FullDateTime 
                and mt2.selectedDate = 3/13/2015

2 个答案:

答案 0 :(得分:1)

您无需使用任何联接。 试试这个:

DECLARE @SelectedDate date
SET @SelectedDate = '3/13/2015'

SELECT ID, 
       Name, 
       FullDateTime
FROM myTable 
WHERE FullDateTime BETWEEN @SelectedDate AND DATEADD(HH, 24, @SelectedDate)

答案 1 :(得分:1)

尝试使用 Date ADD

E.G:

DECLARE @SelectedDate datetime
SET @SelectedDate = getdate()

select dateadd(hour,24,@SelectedDate)

您的查询应该是。

DECLARE @SelectedDate date
SET @SelectedDate = '2015-03-15 15:05:20.533'
SELECT ID, 
       Name, 
       FullDateTime
FROM myTable 
WHERE FullDateTime>=@SelectedDate AND FullDateTime<=DATEADD(hour,24,@SelectedDate)