0

如何在 oracle SQL 中创建包含单列日期数据类型的表,该表包含从 2000 年 1 月 1 日到今天的所有日期

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

如果这是 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 回答