如何使用时间戳记在短短20天内选择SQL数据

时间:2018-08-20 08:49:03

标签: sql sql-server datetime timestamp sql-timestamp

我如何通过时间戳记使用前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天的行是正确的。如果没有,请纠正我。

3 个答案:

答案 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天,可以在开始日期和结束日期之间进行尝试。

  1. 前20天DATEADD(DAY,-20,GETDATE())
  2. 结束日期仅使用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())