PDA

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



abbas381366
دوشنبه 03 فروردین 1394, 20:14 عصر
با سلام
من یه دیتا بیس اکسس دارم که میخوام ازش رکوردهایی که کمتر از زمان خاصی هست رو بگیرم .

زمانی که لازمه مقایسه بشه در ستونی به نام tarikhe_ersal_be_dastgah ثبت شده. نوع این ستون String هست و 2 تا فیلدش 2/14/2015 8:39:09 PM هست و بقیه 2/14/2016 8:39:09 PM ...

من میخوام ردیفهایی که زمان tarikhe_ersal_be_dastgah کمتر از زمان حال هست رو بگیرم که طبیعتا باید اون 2 تا رکوردی که 2015 هست رو بهم بده و این هم کدی که زده شده :

cmd.Connection = cn;
cmd.CommandText = "select * from file_tbl where tarikhe_ersal_be_dastgah < @time ORDER BY ID ASC";
cmd.Parameters.AddWithValue("@time", dt.ToString());

متغییر dt زمان {3/23/2015 8:57:40 PM هست

این کد کل رکوردها رو برمیگردونه .. یعنی اون رکوردهای 2016 هم بر میگردونه ...

مشکل کجاست ؟

LastAirbender
دوشنبه 03 فروردین 1394, 20:37 عصر
با سلام
من یه دیتا بیس اکسس دارم که میخوام ازش رکوردهایی که کمتر از زمان خاصی هست رو بگیرم .

زمانی که لازمه مقایسه بشه در ستونی به نام tarikhe_ersal_be_dastgah ثبت شده. نوع این ستون String هست و 2 تا فیلدش 2/14/2015 8:39:09 PM هست و بقیه 2/14/2016 8:39:09 PM ...

من میخوام ردیفهایی که زمان tarikhe_ersal_be_dastgah کمتر از زمان حال هست رو بگیرم که طبیعتا باید اون 2 تا رکوردی که 2015 هست رو بهم بده و این هم کدی که زده شده :

cmd.Connection = cn;
cmd.CommandText = "select * from file_tbl where tarikhe_ersal_be_dastgah < @time ORDER BY ID ASC";
cmd.Parameters.AddWithValue("@time", dt.ToString());

متغییر dt زمان {3/23/2015 8:57:40 PM هست

این کد کل رکوردها رو برمیگردونه .. یعنی اون رکوردهای 2016 هم بر میگردونه ...

مشکل کجاست ؟

سلام ، مشکل کجا نیس ؟ خب شما اومدین دو رشته اونم دو رشته این شکلی رو با هم مقایسه کردین ، خب انتظار داشتین نتیجه چی بشه؟؟ خب از بعد رشته یا عددی هم که نگاه بکنیم 8:57 PM بزرگتر از 8:39 PM هست، خودش از کجا باید بدونه سال کدومه و .. شما اومدین چندین پارامتر رو توی یک ستون قرار دادین که این یعنی دیتابیس شما نرمال نیست ، پیشنهاد میکنم درمورد نرمال سازی دیتابیس کمی تحقیق بفرمایید ،

Mahmoud Zaad
دوشنبه 03 فروردین 1394, 20:38 عصر
سلام
چرا شما نوع ستون رو date/time نمی گیرید؟

abbas381366
دوشنبه 03 فروردین 1394, 20:58 عصر
سلام
چرا شما نوع ستون رو date/time نمی گیرید؟

ممنون نوع رو کردم date/time درست شد ...

فقط یه جورایی مجبورم string باشه کوری نیست که string رو تبدیل کنه بعد مقایسه کنه ؟

Mahmoud Zaad
دوشنبه 03 فروردین 1394, 21:32 عصر
من تاریخ و ساعت رو دو تا فیلد کردم، برای تاریخِ تنها جواب میده ولی برای ساعت مشکل داره. مگه اینکه با کد نویسی یه بلایی سرش بیارید!