PDA

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



shahriar.shahrashoob
یک شنبه 10 اردیبهشت 1391, 10:18 صبح
سلام.این تپیک یه جای دیگه هم سوال شده ، اما پاسخی داده نشده.تورو خدا کمکم کنید.کارم خیلی فوریه.
ببنیید زمان ورود اطلاعات یه تاریخ بصورت maskedtectbox در دیتابیس insertمیکنم .اسم ستون این تاریخ date هست که نوعش هم از date type هست.
حالا میخوام یه گزارش بگیرم توی کریستال ریپورت. توی صفحه گرفتن گزارش دو تا maskedtextbox دیگه دارم.میخوام کاربراطلعاتی از دیتابیس رو ببنینه که تاریخ اون در دیتابیس ، بین این دو تا تاریخی باشه که کاربر وارد میکنه.باید به دیتاتیبلم که میخواد گزارش رو به کریستال ارسال کنه، یه دیتا بدم. باید اینکارو با یه select انجام بدم.
اما select ام کار نمیکنه.ساده تر بگم.چجوری رکوردهای بین دو تاریخ رو نشون بدم.توی دیتابیسم هم یه ستون تاریخ دارم که بتونم ازش استفده کنم
ببنیید

"select * from table where date between +"maskedtextbox1.text+" and "+maskedtextbox2

esiprogrammer
یک شنبه 10 اردیبهشت 1391, 10:32 صبح
فیلد شما از جنس datetime باشه ساعت هم در دیتابیس ذخیره میشه.
احتمالا شما در query ساعت رو اعمال نمیکنید.
باید ساعت رو هم به تکست باکستون اضافه کنید یا یکجوری به query اضافه کنید.

اگه میخواهید ساعت رو دخالت ندید میتونید از توابع Datepart هم استفاده کنید.

shahriar.shahrashoob
یک شنبه 10 اردیبهشت 1391, 10:36 صبح
قربان توابع datepart چجوریه؟
نه اصلا ساعت نداره
خیلی ساده بگم
select کردن رکوردهای بین دو تاریخ که از برنامه میگیریم رو میخوام

omidamiry
یک شنبه 10 اردیبهشت 1391, 10:47 صبح
شما فیلد تاریخ رو اگر رشته بگیری راحت بنویس

select * from mytabl
where datastr>=? and datastr<=?

تموم خاستی مساوی بزار نخاستی نذار

esiprogrammer
یک شنبه 10 اردیبهشت 1391, 10:58 صبح
تابع datepartاینطوری استفاده میشه

select * from table where DATEPART(MONTH,date)=1
این دستور رکوردهایی رو برمیگردونه که توی فیلد date اونها ، مقدار ماه 1 هست.


موفق باشید.

shahriar.shahrashoob
یک شنبه 10 اردیبهشت 1391, 11:00 صبح
خدا پدرته بیامرزه.دستت درد نکنه.حل شد.بسیااااااااااااااار ممنون

shahriar.shahrashoob
یک شنبه 10 اردیبهشت 1391, 12:22 عصر
ممنونم قربان.حل شد

shahriar.shahrashoob
یک شنبه 10 اردیبهشت 1391, 14:56 عصر
سلام.کدتون درست بود.اما اگه دو تاریخی که سرچ میکنم، جفتشون تو یک ماه باشن، همه ی فیلدهایی که توی بازه زمانی ماه های دیگه هم هستن نشون میده بجای اینکه فیلد مورد نظر منو نشون بده.مثلا بببنیدی این کدمو
select
* from daroo where TodayD>='01/01/1391' and TodayD<='03/01/1391'

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

select * from mytabl
where datastr>=? and datastr<=?

تموم خاستی مساوی بزار نخاستی نذار

omidamiry
سه شنبه 12 اردیبهشت 1391, 16:31 عصر
من یه کلک به سیستم میزنم تاریخ رو با مسک تکس باکس میگیرم و زمانی ذخیره میکنم بدون / هستش مثلا 13910211 و حتی اگر خاستی دستی بسرچی فقط به عدد تبدیل کن مقایسه کن

من تا حالا به مشکل نخوردم احتمالا مشکلت تو / هاس نذار تاریخرو هم از ماسک بخون و هم در ماسک نشون بده خودش / میذاره ضمنا مسک رو باید 0000/00/00 تنظیم کنیا.

موفق باشی .
نشد پیام خصوصی بده