question 1
Je travaille avec un système où la date est stockée sous forme d'entier (numérique réel (8,0)) et j'ai remarqué que d'autres systèmes stockent également la date en tant qu'int comme cisco dans ce fil . Exemple
20120101 -- 01 Jan 2012
Y a-t-il un avantage à conserver le système de date numérique et à ne pas utiliser SQL Datetime?
question 2
Maintenant, j'essaie de parcourir la date numérique pour trouver des clients entre deux dates. Si le start
et enddate
englobe deux mois, j'obtiens des milliers d'enregistrements au lieu de seulement 60. Exemple:
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
Cela tire 8931 enregistrements au lieu de 60. Existe-t-il un meilleur moyen d'améliorer la logique ci-dessus, donc je ne tire que des dates valides? J'ai essayé IsDate et les sous-requêtes mais cela n'a pas fonctionné de manière efficace.