我想创建一个包含两列的表,其中一列应该是日期在2013年7月21日至今天之间的日期。使用sql server 2008r2并保留系统日期类型一样。使用存储过程创建表
请有人指导我,因为我需要尽快做到这一点。
我想创建一个包含两列的表,其中一列应该是日期在2013年7月21日至今天之间的日期。使用sql server 2008r2并保留系统日期类型一样。使用存储过程创建表
请有人指导我,因为我需要尽快做到这一点。
像这样的东西应该工作
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
非常感谢。 – user3782929
试试这个:
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 @[email protected]+1;
SET @currentDate = dateadd(dd, 1, @currentDate)
END
')
GO
EXEC TABLE_CREATION
列日期是具有今天的开始日期和结束日期的日期范围。 – user3782929
我编辑了查询。希望它现在可以帮助你。 –
当您复制我的代码时,您应该用您的* @ startDate *变量名称替换所有* @ currentDate *变量名称;-) – schlonzo
在你的循环使用'DATEADD()'方法添加天* GETDATE()*和存储此你的表中的值 – schlonzo
这不能回答我的问题......所以当我插入到列中时,我应该使用(a,dateadd())声明任何变量,如@start? – user3782929