PDA

View Full Version : لطفا دستور queryگرفتن به شرط اینکه در یه بازه مثلا زمانی(تاریخ 1 وتاریخ2) را توضیح بدید



hm1984ir
پنج شنبه 09 خرداد 1387, 11:10 صبح
لطف کنید باتوضیح باشه که درست بفهممش نه خلاصه چون با بازه های زمانی این جور شروط کار نکردم در ضمن اگه احتیاج به تعریف متغیر و تبدیل به نوع دیگه داره اوناروهم بنویسید نوع فیلد تاریخ همnvarchar(50)

rezaiy.ali
پنج شنبه 09 خرداد 1387, 11:22 صبح
اگر تاریخ خودت را در بانک به صورت 1387/03/09 داری ذخیره می کنی


SELECT * FROM Table where Date>=@FirstDate And Date>=@EndDate
-----------------------------------------------------------------------------------
SELECT * FROM Table where Date >=1387/02/08 And Date>=1387/02/09

می تونی در FirstDate و EndDate هر نوع اطلاعتی را قرار بدی
موفق باشید

hm1984ir
پنج شنبه 09 خرداد 1387, 11:56 صبح
منظور شما از FirstDate@ وEndDate@ چیه یعنی من باید دوت فلید به این نامها در table sql اضافه کنم
من تاریخها از طریق باتن میگیرم ودر تکس باکس میریزم نباید دستوری در query باشه ازطریق تکس باکس تاریخها رو بگیره

اصغر (پآچ)
پنج شنبه 09 خرداد 1387, 12:18 عصر
سلام

با تشکر از راهنمایی دوست عزیزمون Rezaiy.Ali که روشی رو توضیح داد.

اما چرا خودت رو اینقدر اذیت کنی؟

می تونی از این روش استفاده کنی:


SELECT * FROM databasename WHERE date BETWEEN start-date AND end-date

datebasename : نام پایگاه داده ات است.
start-date : تاریخ شروع محدوده
end-date : تاریخ خاتمه محدوده

در ضمن بیشتر دستورات SQL رو می تونی از اینجا (http://barnamenevis.org/forum/showthread.php?t=105809) ببینی.

hm1984ir
پنج شنبه 09 خرداد 1387, 12:30 عصر
من باید start-date و end-date کجا و چه نوعی تعریفشون کنم درضمن محدوده زمانی من (تاریخ) را خود کاربر تعیین میکنه یک محدوده ثابت نیست بستگی نیاز کاربر داره

baran_mehr
پنج شنبه 09 خرداد 1387, 15:04 عصر
سلام عزیز دلم.
دوستمون جواب سوالتون رو داده بودن و هم چنین توضیح اون.
اما...برای دستور بالا یعنی :

SELECT * FROM databasename WHERE date BETWEEN start-date AND end-dateشما میتونید برای گرفتن تاریخ از دوتا TextBox استفاده کنید .تا کاربر تاریخی رو که میخواد رو بتونه وارد کنه ، در این صورت دستور بالا رو باید به این صورت تغییر بدید:

"SELECT * FROM databasename WHERE date BETWEEN '"& textbox1.text &"' AND '"&textbox2.text &"'"
موفق باشی.

Yama12
یک شنبه 12 خرداد 1387, 00:34 صبح
سلام
روش آقای باران مهر کاملا درسته اما برای یادگیری بیشتر خودت میگم


SELECT * FROM databasename WHERE date BETWEEN @start-date AND @end-date

وقتی قبل از یک اسم @ میزاری به متغیر تبدیل میشه یا اصطلاحا میگن Place Holder
برای مقدار دهی به اون از کد زیر استفاده کن
فرض کن یک شی از sqlcommand ساختی به نام ObjCommand که کد بالا رو وارد اون کردی
در خط بعدی بنویس


ObjCommand.Parameters.AddWithValue("@start-date",textBox1.tex);
ObjCommand.Parameters.AddWithValue ("@end-date",textBox2.tex);