View Full Version : مشکل تاریخ در بانک
alireza2007
پنج شنبه 20 اردیبهشت 1386, 10:34 صبح
با سلام
من از سه فیلد برای تاریخ استفاده کردم(روز/ماه/سال)و برای جستجو از تاریخ تا تاریخ دچار مشکل شدم (برای جستجو از یک Query بهره گرفتم )به شکل زیر:(از تاریخ 1/10/80 تا 1/12/85 )اما نتیجه درست نیست جای and و or رو هم عوض کردم جواب نداد.
query1.sql.text:='select * from main_tbl where ((sal<=85)and(sal>=80))or ((mah<=12)and(mah>=10))or ((roz<=1)and(roz>=1))
javidtaheri
پنج شنبه 20 اردیبهشت 1386, 16:44 عصر
باید بصورت حلقه بنویسی
مثل شرط ماه که عنوان کردی فقط ماه 10 و 11و 12 را نشان میده در صورتیکه 82/05/01 نیز در این بازه است و در نتایج جستجو نمیاد
m-khorsandi
پنج شنبه 20 اردیبهشت 1386, 18:22 عصر
select *
from tabinfo
where (year >= 1386 and month >= 1 and day >= 1) and
(year <= 1386 and month <= 1 and day <= 10)
Younes_M
جمعه 21 اردیبهشت 1386, 05:13 صبح
سلام
باعرض معذرت
query1.sql.text
:=
'select * from main_tbl where ((sal*10000 + mah*100 + roz) <= 851201) and
((sal*10000 + mah*100 + roz) >= 801001)'
امیدوارم کمک کند
alireza2007
شنبه 22 اردیبهشت 1386, 11:49 صبح
با سلام مجدد
قطعه برنامه ای که نوشته اید اعداد معرف چه چیزهایی می باشند(با در نظر گرفتن جدا بودن فیلدها)
Younes_M
شنبه 22 اردیبهشت 1386, 16:48 عصر
از اعداد به عنوان ساخت یک عدد واحد از اجرای تاریخ استفاده شده است مثلا تاریخ 85/12/01 میشود 85 * 10000 + 12 * 100 + 01 = 851201
از این کار برای ساده سازی مقایسه بین تاریخها استفاده میشود
Bahmany
یک شنبه 23 اردیبهشت 1386, 06:34 صبح
سلام
query1.sql.text:='select * from main_tbl where ((sal<=85)and(sal>=80))or ((mah<=12)and(mah>=10))or ((roz<=1)and(roz>=1این کاری که شما کردید کاملا اشتباه هست.
شما بهتره یک فیلد تاریخ شمسی از نوع char(12) و یک فیلد تاریخ میلادی از نوع Datetime در بانک داشته باشید محاسباتتون رو در فراخوانی ها می تونید با فیلد میلادی انجام دهید و هم می توانید جواب رو به صورت شمسی نشون بدید
برای تبدیل شمسی به میلادی و برعکس نیز class های زیادی در سایت خودمون وجود داره
مثلا :
Select shmasi_date from SampleTable where Milady_date between '2001/01/01' and '2005/01/01'
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.