Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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 在visual studio上添加日期之前的数字_Sql_Tsql_Visual Studio 2008 - Fatal编程技术网

Sql 在visual studio上添加日期之前的数字

Sql 在visual studio上添加日期之前的数字,sql,tsql,visual-studio-2008,Sql,Tsql,Visual Studio 2008,大家好,我这里有一段代码,其中输出两列,一列是1-30,另一列是今天前30天 DECLARE @StartDate date SELECT @StartDate = GETDATE() ;WITH cte AS ( SELECT 1 AS idx, DATEADD(d,-1,@StartDate) AS idxDate UNION ALL SELECT idx -1, DATEADD(d,-1,idxDate) FROM cte W

大家好,我这里有一段代码,其中输出两列,一列是1-30,另一列是今天前30天

DECLARE @StartDate date

SELECT @StartDate = GETDATE()

;WITH cte AS (
SELECT 
              1 AS idx,
               DATEADD(d,-1,@StartDate) AS idxDate
UNION ALL
SELECT idx -1, DATEADD(d,-1,idxDate)
FROM cte
WHERE idx >-30
)
    SELECT idx DateValue, CONVERT(VARCHAR(10),idxDate,110) DateLabel
FROM CTE
OPTION (MAXRECURSION 0) 
现在看起来是这样

 DateValue   DateLabel
1            06-20-2013
0            06-19-2013
-1           06-18-2013
-2           06-17-2013
etc....
因此,它应该是-1,而不是开始时的1和0,我想在日期标签后面的前面添加dateavalue,如下所示:

 DateValue   DateLabel
-1            06-20-2013, -1
-2            06-19-2013, -2
-3            06-18-2013, -3
-4            06-17-2013, -4
DECLARE @StartDate date

SELECT @StartDate = GETDATE();

WITH cte AS 
(
     SELECT -1 AS idx, DATEADD(d,-1,@StartDate) AS idxDate
     UNION ALL
     SELECT idx -1, DATEADD(d,-1,idxDate)
     FROM cte
     WHERE idx >-30
)

SELECT idx DateValue, CONVERT(VARCHAR(10),idxDate,110) + ', ' + CAST(idx as nvarchar(max)) DateLabel
FROM CTE
OPTION (MAXRECURSION 0) 
提前谢谢

你的意思是这样的:

 DateValue   DateLabel
-1            06-20-2013, -1
-2            06-19-2013, -2
-3            06-18-2013, -3
-4            06-17-2013, -4
DECLARE @StartDate date

SELECT @StartDate = GETDATE();

WITH cte AS 
(
     SELECT -1 AS idx, DATEADD(d,-1,@StartDate) AS idxDate
     UNION ALL
     SELECT idx -1, DATEADD(d,-1,idxDate)
     FROM cte
     WHERE idx >-30
)

SELECT idx DateValue, CONVERT(VARCHAR(10),idxDate,110) + ', ' + CAST(idx as nvarchar(max)) DateLabel
FROM CTE
OPTION (MAXRECURSION 0) 


查询结束。

您只需稍微调整上一个
选择

  SELECT idx-2 AS DateValue, CONVERT(VARCHAR(10),idxDate,110) +', ' + CAST(idx-2 AS NVARCHAR(10)) DateLabel
FROM CTE

哦,是的!非常感谢你!希望我能投票,但需要15份报告;(