Как я могу просто использовать данные предыдущих 20 дней, используя метку времени. В приведенном ниже коде я выбираю метку времени все, что выше этой метки я хотел выбрать, а затем вставить его. Но меня не интересуют все данные, которые есть в базе данных, но мне нужны данные за 20 дней с этой конкретной даты. Как я могу этого достичь. То, что я попробовал, находится ниже.

Мой запрос к SQL-серверу выглядит следующим образом:

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 дней я прав. Если нет, поправьте меня, пожалуйста.

2
user9630935 20 Авг 2018 в 11:49

3 ответа

Лучший ответ

Будет ошибка 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()
1
D-Shih 20 Авг 2018 в 08:52

Пытаться

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 
2
Kami 20 Авг 2018 в 13:05

Попробуйте запрос ниже: вам не нужно выбирать

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())
0
Fahmi 20 Авг 2018 в 08:51
51927149