我正在尝试创建一个包含两列的表,其中一列应该是日期在2013年7月21日到今天之间的日期。使用sql server 2008r2并保持系统日期类型相同。
请有人指导我,因为我需要尽快这样做。
答案 0 :(得分:0)
试试这个:
IF OBJECT_ID('TABLE_CREATION') IS NOT NULL
DROP PROCEDURE TABLE_CREATION
GO
CREATE PROCEDURE TABLE_CREATION
AS
DECLARE @StartDate date;
DECLARE @i bigint;
SET @StartDate = '2001/01/01'
SET @i=1;
EXECUTE('
if object_id(''table_name'') is not null
drop table table_name
create table table_name (column1_name date, column2_name varchar(max))
WHILE @StartDate < getdate()
BEGIN
insert into table_name (column1_name, column2_name) VALUES (@StartDate,@i)
SET @i=@i+1;
SET @currentDate = dateadd(dd, 1, @currentDate)
END
')
GO
EXEC TABLE_CREATION
答案 1 :(得分:0)
这样的事情应该有效
DECLARE @currentDate datetime = Convert(datetime, '2013/07/21', 111)
WHILE @currentdate < getdate()
BEGIN
INSERT INTO <your_table>
(<your_date_column>)
VALUES
(@currentDate)
SET @currentDate = dateadd(dd, 1, @currentDate)
END
GO