0

2000年1月1日から今日までのすべての日で構成される日付データ型の単一列を含むテーブルをOracleSQLで作成する方法

4

3 に答える 3

1

あなたの質問は明確ではないので、私はあなたがこのようにしたいと思っていると思います。

SQLサーバープラットフォーム。

CREATE table mycalender
(
mydate date
);

declare @startdate as date = '2000-01-01'

WHILE(@startdate!=DATEADD(D, 0, DATEDIFF(D, 0, GETDATE())))
begin
insert into mycalender VALUES(@startdate)
set @startdate=dateadd(day,1,@startdate)
end
于 2012-07-20T10:07:00.717 に答える
1

Oracle行ジェネレーターを使用できます。

 insert into your_table ( your_column )
 select 
    to_date('2000/01/01', 'yyyy/mm/dd') + N.n
 from
  (SELECT ROWNUM n
   FROM   ( SELECT 1 just_a_column
         FROM   dual
         CONNECT BY LEVEL <= 
               SYSDATE
               - to_date('2000/01/01', 'yyyy/mm/dd') 
               + 1
           ) T
  ) N
  where
      to_date('2000/01/01', 'yyyy/mm/dd') + N.n <= SYSDATE
于 2012-07-20T10:28:49.920 に答える
0

これがMSSQLServerの場合は、次のことを試してください。

DECLARE @DateFrom DATETIME = '20000101';
DECLARE @DateTo DATETIME = GETDATE();

WITH Dates(date)
AS
( 
SELECT @DateFrom 
UNION ALL
SELECT DATEADD(day,1,Dates.date) FROM Dates WHERE Dates.date < DATEADD(DAY, -1, @DateTo)
)

SELECT * FROM Dates OPTION (MAXRECURSION 5000);
于 2012-07-20T09:53:36.070 に答える