0

日付やその他の情報を格納するテーブルがあります。

テーブルに保存されていない日付のレコードを表示したい。

01/01/2012[dd/mm/yyyy]例: 、03/01/2012、 の 日付があり06/01/2012ます。

日付の出力を表示したい02/01/2012, 04/05/2012,05/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 に答える