питання 1
Я працюю з системою, де дата зберігається як ціле число (фактичне числове значення (8,0)), і я помітив, що інші системи також зберігають дату як int, наприклад cisco в цій темі . Приклад
20120101 -- 01 Jan 2012
Чи є якась перевага зберігати числову систему дат і не використовувати SQL Datetime?
Питання 2
Зараз я намагаюся переглядати числову дату, щоб знайти клієнтів між двома датами. Якщо start
і enddate
охоплюють два місяці, я отримую тисячі записів, а не лише 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
Це витягує 8931 запис замість 60. Чи є кращий спосіб покращити логіку вище, тому я витягую лише дійсні дати? Я спробував IsDate та підзапити, але це не дуже ефективно працювало.