如何在 oracle SQL 中创建包含单列日期数据类型的表,该表包含从 2000 年 1 月 1 日到今天的所有日期
问问题
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
如果这是 MS SQL Server 试试这个:
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 回答