คำถามที่ 1
ฉันกำลังทำงานกับระบบที่เก็บวันที่เป็นจำนวนเต็ม (ตัวเลขจริง (8,0)) และฉันสังเกตเห็นว่าระบบอื่น ๆ เก็บวันที่เป็น int เช่นซิสโก้ในหัวข้อนี้ ตัวอย่าง
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 และแบบสอบถามย่อย แต่ก็ไม่ได้ผลอย่างมีประสิทธิภาพ