質問1
日付が整数(実際の数値(8,0))として格納されているシステムを使用していますが、他のシステムもこのスレッドにciscoなどのintとして日付を格納していることに気付きました。例
20120101 -- 01 Jan 2012
数値日付システムを維持し、SQL日時を使用しないことの利点はありますか?
質問2
現在、2つの日付の間の顧客を見つけるために、数値の日付をループ処理しています。start
およびenddate
が2か月にわたる場合、60だけではなく数千のレコードを取得します。例:
create table #temp1(day int,capacity int) /* just a temp table */
declare @start int
declare @end int
set @start=20111201
set @end = 20120131
while (@start <= @end)
Begin
insert into #temp1 /* I am storing things in #temp table so data looks pretty */
exec usp_GetDailyCap @date1= @start
set @start = @start + 1;
end
select * from #temp1
これにより、60ではなく8931レコードが取得されます。上記のロジックを改善して、有効な日付のみを取得する方法はありますか?IsDateとサブクエリを試してみましたが、効率的に機能しませんでした。