2012-07-27 36 views
0

我有一張表,用於存儲日期和其他信息。用於顯示未存儲在表中的日期的SQL查詢

我想顯示未存儲在表中的日期記錄。例如:

例如我有日期01/01/2012[dd/mm/yyyy],03/01/2012, 06/01/2012

我想顯示輸出的日期02/01/201204/05/201205/01/2012.

查詢此請SQLServer2008的

+0

請提供表格結構 – shajivk 2012-07-27 06:22:16

+0

提供結構,你也試過了嗎? – 2012-07-27 06:26:16

回答

0

可以使用DATEADD功能。例如,1天增加至當前的日期:

SELECT DATEADD(dd, 1, GETDATE()) 

你可以找到MSDN更多信息。

0
;WITH MYCTE AS 
(
SELECT CAST('1900-01-01' AS DATETIME) DateValue 
UNION ALL 
SELECT DateValue + 1 
FROM MYCTE 
WHERE DateValue + 1 < '3550-12-31' 
) 

SELECT DateValue, B.SomeColumn 
FROM MYCTE A 
LEFT JOIN MyTable B ON A.DateValue = B.DateValue 
OPTION (MAXRECURSION 0) 

我得到的日期範圍CTE從here(和它需要4秒,產生25萬行的表)

0

這個代碼顯示所有的日期從2011年一年你的表丟失:

create table #dates (d datetime); 
declare @start_period datetime; 
set @start_period='01.01.2011'; 
declare @end_period datetime; 
set @end_period='01.01.2012'; 

declare @d datetime; 
set @[email protected]_period 

while(@d<@end_period) 
begin 
    insert into #dates (d) values (@d) 
    SET @[email protected]+1 
end 
select d from #dates where d not in (select <date> from <your_table>) 
相關問題