PDA

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



khz-web1
یک شنبه 30 فروردین 1388, 16:18 عصر
سلام

من می خوام بین دو تاریخ شمسی در بانک اکسس جستجو کنم (نوع فیلد TEXT می باشد)
به عنوان مثال: رکورد های بین 12/2/1388 تا 24/2/1388 رو لیست کنه
تو سایت هم جستجو کردم ولی متاسفانه چیز بدرد بخوری یافت نشد !

با تشکر

mom alone
یک شنبه 30 فروردین 1388, 16:55 عصر
منظورت چیه؟
آیا میخای اطلاعات ذخیره شده که تاریخ اون بیت این دو هست رو پیدا کنی؟
یا اینکه می خای تاریخ های موجود بین دو تاریخ رو بدست آوری؟

فکر می کنم منظورت اولیه؟ درسته؟
خوب عزیزم خیلی ساده است که


where table.tarikh>='1386/01/01' and table.tarikh<='1386/12/29'

اینکه فیلد تاریخ رو بصورت txt ذخیره کردی درست هست
و در جستجو ها فرض کن فرمت تاریخ هستند و مانند تاریخ میلادی باهاشون رفتار کن
من همین کارو میکنم

khz-web1
دوشنبه 31 فروردین 1388, 00:01 صبح
فرض کنيد که بخوايم رکوردهاي رو که بين دو تاريخ 12/2/1388 تا 24/2/1388 ثبت شدن رو بدست بياريم ...
خوب اين 2تاريخ هم از 2تا textbox گرفته ميشه ... واسه تنظیم دستور SQL ، لطفا وحود تکست باکس ها هم در نظر بگیرید

kablayi
دوشنبه 31 فروردین 1388, 00:26 صبح
سلام ...
اول از همه برای اینکه query شما درست جواب بده بایستی تاریخ ها رو در دیتابیس به صورت استاندارد ذخیره کنید یعنی روز ها و ماههای یک رقمی رو به صورت دو رقمی ذخیره کنید مثلا:

1388/2/5 -------> 1388/02/05

برای خود query هم به صورت زیر عمل کنید ...


"select * from table where Date between '" & txtDATE1.Text & "' and '" & txtDATE2.Text & "' "


موفق باشید...

khz-web1
دوشنبه 31 فروردین 1388, 01:30 صبح
دوست عزیز مشکل جستجو حل (خیلی لطف کردید)
حالا مشکل اینجاست ، تابعی که من دارم تاریخ رو به این صورت برنمیگردونه (00/00/0000)
تابعی که واسه تاریخ استفاده می کنم


Function MiladiToShamsi(ByVal Year As Integer, ByVal Month As Integer, ByVal Day As Integer) As String
Dim A As Date = Year.ToString & "/" & Month.ToString & "/" & Day.ToString
Dim B As New PersianCalendar
Return B.GetYear(A) & "/" & B.GetMonth(A) & "/" & B.GetDayOfMonth(A)
End Function

کد بدست آوردن مقدار



MiladiToShamsi(Today.Year, Today.Month, Today.Day)


توی همین تابع می خواستم کاری کنم که تاریخ رو بصورت 00/00/0000ذخیره کنه
یا اگر DLL یا function دارید که کارو منو راه بندازه ، لطف کنید در اختیار بزارید
با تشکرفراوان از شما

anooshiran
دوشنبه 31 فروردین 1388, 01:57 صبح
سلام دوست عزيز

به اين لينك مراجعه كن

http://barnamenevis.org/forum/showthread.php?t=150949

يك كامپوننت براي تبديل تاريخ در اينجا گذاشته ام كه مي تواني از demo استفاده كني و مشكلت را براي تبديل تاريخ به فرمت دلخواهت حل كني

kablayi
دوشنبه 31 فروردین 1388, 02:56 صبح
سلام...
دوست عزیز با یه شرط کوچیک راحت میتونید این کار رو انجام بدین.
تابع تاریخت رو اینجوری بنویسید :


Function MiladiToShamsi(ByVal Year AsInteger, ByVal Month AsInteger, ByVal Day AsInteger) AsString
Dim A AsDate = Year.ToString & "/" & Month.ToString & "/" & Day.ToString
Dim B AsNew PersianCalendar

Dim D AsString=B.GetDayOfMonth(A).ToString
Dim M AsString= B.GetMonth(A).ToString

If D.Length = 1 Then
D= "0" + D
EndIf
If M.Length = 1 Then
M= "0" + M
EndIf
Return B.GetYear(A) & "/" & M & "/" & D
EndFunction



موفق باشید....

khz-web1
دوشنبه 31 فروردین 1388, 03:13 صبح
آقا من واقعا از شما ممنونم ... خیلی لطف کردید ... روی دکمه تشکر هم زدم