میشه با SELECT یک بازه تاریخ را انتخاب کرد ؟ فیلد تاریخ رو VarChar دادم .
برای اینکه رکوردهای بین 01/01/87 تا 01/01/88 را انتخاب کنم باید چکار کنم ؟ درضمن تاریخ را هم به همین فرمت وارد بانک کردم .
میشه با SELECT یک بازه تاریخ را انتخاب کرد ؟ فیلد تاریخ رو VarChar دادم .
برای اینکه رکوردهای بین 01/01/87 تا 01/01/88 را انتخاب کنم باید چکار کنم ؟ درضمن تاریخ را هم به همین فرمت وارد بانک کردم .
میدونین دفعه چندمه این سوال داره پرسیده میشه؟!!!!
قبل از اینکه تاپیک ایجاد کنید جستجو کنید. خودتون سریعتر به جواب میرسید.
BETWEEN را جستجو کنید.
مرسی خوب سرچ کردم ولی فارسی
BETWEEN را سرچ کردم ولی هیچی پیدا نشد !!!
Select Field From Table Where Field Between StartRange And EndRange
ببخشید میشه لینک اون تاپیک را بدین ! من هنوز مشکل دارم
با سلام.
sql.Add('select * from NAMEJADVAL where NAMEFIELD between'''+MaskEdit1.Text+'''and'''+maskEdit2.Text +'''');در کد بالا به جای NAMEJADVAL نام جدول(Table) مورد نظرتون رو قرار بدین.
موفق باشید.
آخرین ویرایش به وسیله acilios : جمعه 02 اسفند 1387 در 16:45 عصر
نام فیلد ... اینا رو میدونم ولی چجوری تمام روزهای بین 1/1/86 را تا 1/1/88 جدا کنم ؟؟ در ضمن نیازی به این همه ' نبود ازQuotedStr()میشد استفاده کرد ...
خوب اگه دو تاریخ بالا را وارد کنم فقط 1/1/87 پیدا میشه ولی من کل روزهای مابین این دو تاریخ را میخوام
من همین الان توی یه تاپیک دیگه ! این مشکل را توضیح دادم !
ببینید دوست عزیز شما چطور میخواهین یه کاراکتر رشته ای را فاصله توش پیدا کنین ؟
شما برای تاریخ میتونین یک فیلد integer تعریف کنین ! بعدش بیاین یه تاریخ مثل 1387/11/05 را به صورت 13871105 ذخیره کنین یادتون باشه که طول عدد را چک کنین حتما 8 باشه ! یعنی توی مثال بالا 1387115 نزنین !
حالا با استفاده از کد زیر راحت فاصله ها را پیدا میکنید !
select * from myTable where f_date between 13870101 And 13880101
یا
select * from myTable where f_date >= 13870101 And f_date <= 13880101
خوب بعد تو گزارشگیری چی ؟ یا برای نمایش تاریخ ؟ البته تو نمایش که میشه درستش کرد ولی تو گزارش گیری چی ؟ تاریخ اینجوری 13871105 نمایش داده بشه ؟؟؟ راستی وقتی کاربر تاریخ را وارد میکنه برعکس وارد میکنه دیگه 1/1/87 و اینو چکار کنم ؟
بار هم باید گفت : "جستجو کنید"
برای تاریخ های شمسی از کامپوننت ها و یا DLL های آماده ای که وجود داره و باید خریداری کنید استفاده کنید و تاریخ را با فرمت Date ذخیره کنید.
اگرم نمیخواهید از راهی که در پست 11 نوشتند استفاده کنید. زمان نمایش آن را بصورت رشته در آورید و Slash ها را در آن Insert کنید.
یعنی کامپوننتی که تاریخ شمسی را با فرمت date تو بانک ذخیره کنه ؟ تو گزارش گیری میشه رو بصورت رشته در آورد ؟ تو فرمها که میشه یه کاریش کرد .
بله. با چه گزارش گیری؟ FastReport؟ بله میشه.
من خودم در برنامه هام همیشه تاریخ رو بصورت String ذخیره میکنم و فقط موقع نمایش اون رو تغییر میدم و در گزارش هم از فرم تاریخ رو میگیرم.
درست شد ممنون
یه مشکل دیگه تو نمودار چی ؟
من تاریخ را VarChar دادم و BETWEEN کار میکنه و مشکلی نیست ولی برای رسم نمودار بار مشکل دارم نموداری که x فیلد عددی و Y تاریخ ...
واضحتر بگویید. با رسم Chart مشکل دارید ؟
Y axis که تاریخ است را همینطور String قرار دهید.
تو جدول یه فیلد تاریخ است که از نوع VarChar و یک فیلد عددی (از 0 تا 20) ...
میخوام یه نمودار براش درست کنم که X تاریخ باشه و Y اون فیلد عددی ...
Series1.XValues.ValueSource:=ADOTable1Date.FieldNa me;
Series1.YValues.ValueSource:=ADOTable1Kar.FieldNam e;
خوب برنامه رو اجرا میکنم میگه
'1387/01/01' Is not a valid floating point value
َََََAsString رو ته FieldName یادتون رفته.
Asstring نداره !!! اون که اسم فیلد نه مقدارش ...
چکارش کنم ؟ ضروری ...
نه اسم فیلد نیست مقدارشه! AsString مقدار رکورد جاری و فعال رو بصورت String بر میگردونه. مثل AsInteger,AsFloat,....
بعلاوه وقتی فیلدهاتون رو در دیتاست اضافه میکنید نیازی به FieldName دیگه ندارید.
منظور من این بود که به مقدار فیلد نیاز نداریم فقط نام فیلد نیاز میشه و FieldName.Asstring نیست ...
خوب اون رو مه اسم فیلد را نوشتم ....
آره مقدار داره ...
دوستان یه جورایی حل کردمش ببینید خوبه یا نه :
تاریخ را که با همون فرمت 87/01/01 تو بانک ذخیره کردم و تو select هم مشکلی نیست ولی تو نمودار چون نیاز به یک فیلد عددی داره اومد به AdoTable یک فیلد محاسباتی اضافه کردم و در رویداد OnCalcFields جز ساخت AdoTable مقدار رشته ای تاریخ را به عدد تبدیل کردم و در فیلد محاسباتی ریختم و تو نمودار به جای فیلد تاریخ از این فیلد محاسباتی استفاده کردم ...
از همتون ممنونم ولی 2 تا سوال دیگه
1 - بهترین روش برای ذخیره درست تاریخ چیه ؟ وقتی کاربر تاریخ را وارد میکنه اول روز بعد ماه و بعد سال را وارد میکنه که باید برعکس وارد بانک بشه یعنی اول سال بعد ماه و بعد روز 87/01/01 و نه 01/01/87 .
2 - بهترین ابزار برای رسم نمودار چیه ؟ این DBChart زیاد جالب نیست . FastReport ابزاری برای رسم نمودار داره ؟
ممنون میشم اگه جواب بدید ...
قانونا فرمت DateTime برای تاریخ وجود داره و اگه با کامپوننتهای موجود با همین فرمت ذخیره کنید منظقی تره ولی با String هم مشکل خاصی ایجاد نمیشه. من خودم از کاربر روز و ماه و سال رو جدا گانه در چند کنترل مثل SpinEdit دریافت میکنم تا خطای ورود کاربر در کوئری های دیتابیسم مشکلی رو ایجاد نکنه.
DBChart اتفاقا کامپوننت بسیار خوب و کاراییه. تقریبا هرکاری رو که بخواین براتون انجام میده. البته از خود Chart هم میتونین استفاده کنید. خود FR هم کامپوننت رسم نمودار رو داره.
با اسپین ادیت کاربر باید هی تب رو بزنه ... پس راه خاصی نداره ؟ من MaskEdit گذاشتم