Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 创建会计年度表_Sql Server 2008_Stored Procedures - Fatal编程技术网

Sql server 2008 创建会计年度表

Sql server 2008 创建会计年度表,sql-server-2008,stored-procedures,Sql Server 2008,Stored Procedures,我刚刚创建了一个会计年度表内容 - Week (tinyint 1-53) - Start date (date) - End date (date) - Year (int) 我想制作一个SP,用以下参数将日期插入此表: - Year: <2013> - Start Year date: <12/30/2012> - End Year date: <12/28/2013> 当您对输出满意时,取消对插入的注释 当您对输出满意时,取消注释插入@Aaon B

我刚刚创建了一个会计年度表内容

- Week  (tinyint 1-53)
- Start date (date)
- End date (date)
- Year (int)
我想制作一个SP,用以下参数将日期插入此表:

- Year: <2013>
- Start Year date: <12/30/2012>
- End Year date: <12/28/2013>
当您对输出满意时,取消对插入的
注释


当您对输出满意时,取消注释
插入

@Aaon Bertrand,我会不断得到:“操作数类型冲突:int与日期不兼容”。你知道这里的冲突是什么吗?@tkvo嗯,你有没有以任何方式更改我提供的代码?听起来要么是你更改了代码,要么是其他地方发生了错误…@Aaon Bertrand,我添加了/@y VACHAR(4),并在行中更改为[year]=/@y。是因为我的变量类型吗?我不知道你做了什么。你能告诉我你的产出需要是什么吗;为什么现在的年份是varchar(4),而在这个问题上,您想要一个int?你在改变要求吗?为什么?我仍然不知道你到底改变了什么,但不明白改变[年度]行会导致你报告的错误。不幸的是,很难在注释中描述代码更改。对不起。。。年份应为int。输出应为:第1行-->[周]=1、[开始日期]=12/30/2012、[结束日期]=01/05/2013、[年份]=2013;第2行-->[周]=2,[开始日期]=2012年6月1日,[结束日期]=2013年12月1日,[年度]=2013年;所以…@Aaon Bertrand,我不断得到:“操作数类型冲突:int与日期不兼容”。你知道这里的冲突是什么吗?@tkvo嗯,你有没有以任何方式更改我提供的代码?听起来要么是你更改了代码,要么是其他地方发生了错误…@Aaon Bertrand,我添加了/@y VACHAR(4),并在行中更改为[year]=/@y。是因为我的变量类型吗?我不知道你做了什么。你能告诉我你的产出需要是什么吗;为什么现在的年份是varchar(4),而在这个问题上,您想要一个int?你在改变要求吗?为什么?我仍然不知道你到底改变了什么,但不明白改变[年度]行会导致你报告的错误。不幸的是,很难在注释中描述代码更改。对不起。。。年份应为int。输出应为:第1行-->[周]=1、[开始日期]=12/30/2012、[结束日期]=01/05/2013、[年份]=2013;第2行-->[周]=2,[开始日期]=2012年6月1日,[结束日期]=2013年12月1日,[年度]=2013年;等等。。。
- Week: 1
- Start date: 12/30/2012
- End date: 01/05/2013
- Year 2013
DECLARE @d DATE = '20121230';

;WITH x AS
(
  SELECT TOP (53) n = ROW_NUMBER() OVER (ORDER BY [object_id])-1
    FROM sys.all_objects 
    ORDER BY [object_id]
)
--INSERT dbo.fiscal_year([week],[start date],[end date],[year])
SELECT 
  [week] = n+1, 
  [start date] = DATEADD(WEEK, n, @d), 
  [end date] = DATEADD(DAY, n*7+6,@d), 
  [year] = 2013
FROM x
ORDER BY n;