我如何通过时间戳记使用前20天的数据。在下面的代码中,我要选择时间戳,但要选择该时间戳之上的任何内容,然后再插入。但是我对数据库中的所有数据不感兴趣,但是我需要从特定时间戳记日期起20天的数据。我怎样才能做到这一点。我尝试的是在下面。
我的SQL Server查询如下:
SELECT [LogID]
,[TimeStamp]
,[Artikel_Nr]
,[Percentage_Nr]
from [Database1].[dbo].[Tabel1]
where [TimeStamp] > 2018-02-12 06:02:18.77 AND SELECT DATEADD(DAY,-20,GETDATE())
我不确定上述选择过去20天的行是正确的。如果没有,请纠正我。
答案 0 :(得分:2)
尝试
DECLARE @EndDate DateTime = GETDATE(); -- Specify the date you want to end at
DECLARE @StartDate DateTime = DATEADD(DAY, -20, @EndDate);
SELECT [LogID]
,[TimeStamp]
,[Artikel_Nr]
,[Percentage_Nr]
FROM [Table]
WHERE [TimeStamp] > @StartDate AND [TimeStamp] <= @EndDate
答案 1 :(得分:1)
SELECT DATEADD(DAY,-20,GETDATE())
上的错误,您可以直接使用DATEADD(DAY,-20,GETDATE())
。
如果要使用前20天,可以在开始日期和结束日期之间进行尝试。
DATEADD(DAY,-20,GETDATE())
的GETDATE()
来获取当前日期时间。然后使用Between
SELECT [LogID]
,[TimeStamp]
,[Artikel_Nr]
,[Percentage_Nr]
from [server1].[dbo].[Database1]
where [TimeStamp] between DATEADD(DAY,-20,GETDATE()) and GETDATE()
答案 2 :(得分:0)
请尝试以下查询:无需选择
SELECT [LogID]
,[TimeStamp]
,[Artikel_Nr]
,[Percentage_Nr]
from [server1].[dbo].[Database1]
where [TimeStamp] > '2018-02-12 06:02:18.77' AND [TimeStamp]< DATEADD(DAY,-20,GETDATE())