私は、現在の日付3から15ヶ月の間に、それはすべての日付を出力し、基本的なSQLクエリを書きたい:from table句を使用せずに日付範囲を選択するにはどうすればよいですか?
DATEADD(month, 3, GETDATE()) AND (DATEADD(month, 15, GETDATE()))
から選択するための表がないのにキャッチがあります。私はちょうど日付のリストを取得するために基本的なSELECTを実行したい。これは可能ですか?
私は、現在の日付3から15ヶ月の間に、それはすべての日付を出力し、基本的なSQLクエリを書きたい:from table句を使用せずに日付範囲を選択するにはどうすればよいですか?
DATEADD(month, 3, GETDATE()) AND (DATEADD(month, 15, GETDATE()))
から選択するための表がないのにキャッチがあります。私はちょうど日付のリストを取得するために基本的なSELECTを実行したい。これは可能ですか?
以下は、2つの日付間のすべての日付を取得するのに役立ちます。
DECLARE @Date1 DATE, @Date2 DATE
SET @Date1 = '2015-05-28'
SET @Date2 = '2015-06-30'
SELECT DATEADD(DAY,number+1,@Date1) [Date]
FROM master..spt_values
WHERE type = 'P'
AND DATEADD(DAY,number+1,@Date1) < @Date2
恐ろしい、ありがとう –
すでに回答がありますが、私は文書化されていないシステムテーブルとサポートされていないシステムテーブルに依存しない代替方法を提案します。
declare @Date1 date = '2015-05-28';
declare @Date2 date = '2015-06-30';
declare @Dates table (Date Date);
while @Date1 <= @Date2
begin
insert into @Dates (Date) values (@Date1);
set @Date1 = DateAdd(Day, 1, @Date1);
end
select * from @Dates;
ここの日付範囲はセットです。私は 'SELECT'がテーブルなしでセットを出力できるとは思わない。 – qxg