Pytanie 1
Pracuję z systemem, w którym data jest przechowywana jako liczba całkowita (rzeczywista liczba (8,0)) i zauważyłem, że inne systemy również przechowują datę jako int, np. Cisco w tym wątku . Przykład
20120101 -- 01 Jan 2012
Czy jest jakaś korzyść z utrzymywania liczbowego systemu dat i niestosowania SQL Datetime?
pytanie 2
Teraz próbuję przeglądać datę numeryczną, aby znaleźć klientów między dwiema datami. Jeśli start
i enddate
obejmują dwa miesiące, otrzymuję tysiące rekordów zamiast tylko 60. Przykład:
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
Spowoduje to pobranie 8931 rekordów zamiast 60. Czy istnieje lepszy sposób na ulepszenie logiki powyżej, aby pobierać tylko prawidłowe daty? Próbowałem IsDate i zapytań podrzędnych, ale nie działało to skutecznie.