PDA

View Full Version : مشکل در دستور sql در asp



هواشناس
دوشنبه 05 مرداد 1388, 13:39 عصر
بنام خدا با سلام و تبریک اعیاد شعبانیه من در اکسس فیلدهای gdate, sdate,prec رو بعنوان تاریخهای شمسی و میلادی و مقدار دادهمورد نظر دارم و با دستور زیر برای گزارشگیری ماهانه در سنوات مختلف از تاریخ های میلادی گزارش می گیرم و لب وقتی همین دستور رو برای فیلد تاریخ شمسی بکار می برم اشتباه حساب می کنه و مشکل هم مشخصه که در تفاوت ساختار میلادی و شمسی هست مثلا وقتی group و یا having استفاده میکنه در تعداد روزهای شمسی و میلادی تفاوت وجود داره

حالا اگه میتونید بفرمایید واسه شمسی چکار کنم


البته گفته باشم که با تابعS2GDAte تاریخ میلادی فرمت 2000/01/01 به تاریخ شمسی فرمت 1378/10/21 تبدیل میشه (البته با تابع ضمیمه که ربطی به موضوع نداره) 0 در اصل فرمت فیلدهای تاریخی رو برمیگردونه


<%FUNCTION S2GDAte(myDate)
myYear=left(myDate,4)
myMonth=mid(myDate,6,2)
myDay=right(myDate,2)
call persian_civil(myYear, myMonth, myDay )
if myMonth<10 then myMonth="0"&myMonth end if
if myDay<10 then myDay="0"&myDay end if
S2GDAte=cstr(myYear)+"/"+cstr(myMonth)+"/"+cstr(myDay)
end FUNCTION %>

<%function RonthG(qGdate,Pm,St)
Req_Date=qGdate
syear=left(Req_Date,4)
if cint(syear)<1500 then Req_Date=S2GDAte(Req_Date)
Req_Param=Param
Req_Station=Station
syear=left(Req_Date,4)
sm=mid(Req_Date,6,2)
SQL = "SELECT Sum(Prec) AS precmonth FROM tbl where Format(SDate,'yyyy')="&syear&" GROUP BY Format(SDate,'yyyy'), Format(SDate,'mm') HAVING (((Format(SDate,'mm'))="&sm&"))"
set rs=cnndb.execute(sql)
RainmonthG =rs("precmonth")
rs.close
set rs=nothing
end function%>