我有一張表,用於存儲日期和其他信息。用於顯示未存儲在表中的日期的SQL查詢
我想顯示未存儲在表中的日期記錄。例如:
例如我有日期01/01/2012[dd/mm/yyyy]
,03/01/2012
, 06/01/2012
。
我想顯示輸出的日期02/01/2012
,04/05/2012
,05/01/2012.
查詢此請SQLServer2008的
我有一張表,用於存儲日期和其他信息。用於顯示未存儲在表中的日期的SQL查詢
我想顯示未存儲在表中的日期記錄。例如:
例如我有日期01/01/2012[dd/mm/yyyy]
,03/01/2012
, 06/01/2012
。
我想顯示輸出的日期02/01/2012
,04/05/2012
,05/01/2012.
查詢此請SQLServer2008的
;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萬行的表)
這個代碼顯示所有的日期從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>)
請提供表格結構 – shajivk 2012-07-27 06:22:16
提供結構,你也試過了嗎? – 2012-07-27 06:26:16