0

我有一个表格,我在其中存储日期和其他信息。

我想显示未存储在表中的日期的记录。

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

我想显示日期的输出02/01/2012,,04/05/201205/01/2012.

请在SQLServer2008中查询

4

3 回答 3

0

您可以使用该DATEADD功能。例如,要将 1 天添加到当前日期:

SELECT DATEADD(dd, 1, GETDATE())

您可以在MSDN上找到更多信息。

于 2012-07-27T06:26:36.447 回答
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 (生成一个 250000 行的表需要 4 秒)

于 2012-07-27T06:31:09.697 回答
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 @d=@start_period

while(@d<@end_period)
begin
   insert into #dates (d) values (@d)
   SET @d=@d+1
end
select d from #dates where d not in (select <date> from <your_table>)
于 2012-07-27T08:53:27.550 回答