PDA

View Full Version : دستور مناسب برای جستجوی تاریخ



farhad110
سه شنبه 14 اسفند 1386, 10:24 صبح
با سلام. جدولی دارم که فیلدهای تاریخ شروع و تاریخ پایان دوره هایی رو نگهداری میکنه. حالا میخوام به تفکیک تاریخ در هر روز تعداد نفرات شرکت کننده رو بدست بیارم.
جدول:
| تاریخ شروع | تاریخ پایان |
--------------------------------
|14/12/86 |14/12/86 |
|14/12/86 |14/12/86 |
|14/12/86 |16/12/86 |
|14 /12/86 |16/12/86 |
|14/12/86 |16/12/86 |
|15/12/86 |17/12/86 |
|15/12/86 |17/12/86 |
|15/12/86 |17/12/86 |
|15/12/86 |17/12/86 |
حالا مثلا اگر بخوام به تفکیک روزهای مختلف تعداد نفرات شرکت کننده رو بدست بیارم از چه کد sql ی استفاده کنم؟
مثلا طبق جدول در تاریخ 15/12/86 تعداد 7 نفر شرکت کننده دارم. لطفا راهنمایی کنید.
تشکر

nasr
سه شنبه 14 اسفند 1386, 10:28 صبح
select count(*) from table1
where date_1 <= ''' + edit1.text + ''' and date_2 >= ''' + edit1.text+ '''

delphiprog3000
سه شنبه 14 اسفند 1386, 11:53 صبح
سلام.

به غیر از مثال دوستمون میتوانی از between خود sql استفاده کنید.



select count(*) from table1
where date_1 between'+Quetedstr(edit1.text)+'and '+Quetedstr(edit2.text); http://barnamenevis.org/forum/showthread.php?t=96732

SYNDROME
چهارشنبه 15 اسفند 1386, 07:11 صبح
حرف دوستان کاملا درست است به شرطی که شما همیشه تاریخ را با طول 8 ذخیره کنید.
مانند 86/01/01 و 86/12/01 و ...
موفق باشید

farhad110
چهارشنبه 15 اسفند 1386, 13:09 عصر
تشکر از دوستان عزیز. ولی مشکل من در جستجوی یک تاریخ نیست. میخوام روزهای بین دو تاریخ مختلف رو به تفکیک روزها داشته باشم. مشکل در گروه بندی یا جستجو نیست. نمیدونم چطور تمام روزهای بین دو تاریخ رو به دست بیارم.تشکر

SYNDROME
چهارشنبه 15 اسفند 1386, 17:13 عصر
تشکر از دوستان عزیز. ولی مشکل من در جستجوی یک تاریخ نیست. میخوام روزهای بین دو تاریخ مختلف رو به تفکیک روزها داشته باشم. مشکل در گروه بندی یا جستجو نیست. نمیدونم چطور تمام روزهای بین دو تاریخ رو به دست بیارم.تشکر
می توانی با یک While و استفاده از یک Counter به دست بیاوری.
مثلاً:


While StartDate<EndDate Do
Begin
Inc(Count);
// یک روز بهStartDate اضافه کنید
End;

من خودم با این روش به دست می آورم.البته فقط باید یک تابع بنویسید که بک تاریخ وارده یک روز اضافه کنید که فکر نکنم کار چندان سختی باشد.
موفق باشید