0

Actual Live Date構文を取得して、今日が 7 日以上のレコードのリストを表示し、理想的には 1 日あたりのレコード数 (木曜日 = 7 レコード) を表示しようとしています。

私は次の行に沿って何かを考えていました:

SELECT [PW Number]
  ,[status]
  ,[install Date]
  ,[ICL Client Code]
  ,[Actual Live Date]
FROM 
   [QuoteBase].[dbo].[Circuits]
WHERE 
   [Actual Live Date] BETWEEN today and 7 days time  (this is where I am a little stuck as im fairly new)
4

3 に答える 3

1

今朝 00:01 に「今日」を開始する必要がある場合は、たとえば から時間の部分を削除する必要がありますGETDATE()。また、明示的な関数を使用して、日数を追加していることを示しています。

SELECT [PW Number]
  ,[status]
  ,[install Date]
  ,[ICL Client Code]
  ,[Actual Live Date]
FROM 
   [QuoteBase].[dbo].[Circuits]
WHERE 
   [Actual Live Date] BETWEEN
        DATEADD(day,DATEDIFF(day,0,GETDATE(),0) AND
        DATEADD(day,DATEDIFF(day,0,GETDATE()+7,0)

Actual Live Dateに時間コンポーネントが含まれている場合は、正確にどの行を結果に含める必要があるかによって、 +7toを調整する必要があります。+8

于 2013-07-08T11:01:38.130 に答える
0

BETWEENこれにはとGETDATE()関数を使用できます。 は、今日のGETDATE() + 7日付に 7 日を追加します

SELECT [PW Number]
  ,[status]
  ,[install Date]
  ,[ICL Client Code]
  ,[Actual Live Date]
FROM 
   [QuoteBase].[dbo].[Circuits]
WHERE 
   [Actual Live Date] BETWEEN GETDATE() AND GETDATE() + 7
于 2013-07-08T10:58:43.060 に答える
0

列が実際に日付である場合は、少し注意する必要があります。

[Actual Live Date] BETWEEN cast(GETDATE() as date) and cast(GETDATE() + 6 as date)

これには今日も含まれます。今日が月曜日の場合、次の日曜日までの 7 日間が含まれます。来週の月曜日も希望する場合、-6は になります-7

列が の場合、時間コンポーネントのため、今日の日付dateの比較[Actual Live Date] >= getdate()は常に false になります。

Between値に対しては期待どおりに機能しdatetimeますが、値に対しては機能しませんdate

于 2013-07-08T11:00:28.453 に答える