2000年1月1日から今日までのすべての日で構成される日付データ型の単一列を含むテーブルをOracleSQLで作成する方法
質問する
4710 次
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 に答える