我正在尝试从选定日期获取接下来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
答案 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)