PDA

View Full Version : دستور SQl برای انتخاب بر اساس سال تاریخ



Mahdi_S_T
جمعه 19 آبان 1385, 22:00 عصر
من یه جدول دارم شامل یه ID و یه تاریخ میلادی و یه فرم دارم شامل یه Editبرای وارد کردن ID و یه MaskEdit با خروجی از نوع تاریخ میلادی.... حالا میخوام کد SQl بنویسم که بر اساس ID و سال تاریخ وارد شده اطلاعات جدول رو Select کنه ( در ضمن فیلد تاریخ در جدول هم شامل تاریخ کامل است یعنی روز و ماه سال )
البته یه تابع برای گرفتن سال یه تاریخ است

YearOf(date)

mehdi_mohamadi
شنبه 20 آبان 1385, 07:43 صبح
می تونی ابتدا تاریخ را به رشته تبدیل کرده و عدد سال را دربیاری بهدش خیلی راحت می تونی واسش دستور select را بنویسی.
datetostr()

Mahdi_S_T
شنبه 20 آبان 1385, 14:13 عصر
دوست عزیز لازم به تبدیل به رشته نیست چون تابع YearOf خودش عدد سال رو از تاریخ جدا میکند ..... مشکل من نوشتن دستور Sql است اگه لطف کنی دستور اون رو بنویس : یعنی چطوری همزمان سال رو از فیلد داخل جدول جدا کنم و با سال تاریخ وارد شده در MaskEdit هم برابریش رو چک کنم و همزمان برابری شماره وارد شده در Edit هم با فیلد ID در جدول چک بشه

MaryamSalehi
دوشنبه 22 آبان 1385, 00:11 صبح
procedure TForm1.Button1Click(Sender: TObject);
var
DateStr:string;
Year1:Integer;
Date1:TDate;
begin
DateStr:=MaskEditDate.Text;
Date1:=StrToDate(DateStr);
Year1:=YearOf(Date1);
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:=' select * from mytable ';
SQL.Text:=SQL.Text+' where mytable.ID='+EditID.Text;
SQL.Text:=SQL.Text+' and year(mytable.DateEnglish)='+IntToStr(Year1);
Open;
end;//with
end;


فقط یادت باشه که در قسمت properties مربوط به maskeditDate قسمت editmask را حتما به صورت 99/99/9999 باید تعریف کنی در غیر این صورت بر روی تاریخ واردشده ایراد میگیرد.