منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
البحث بين تاريخين مع الوقت - من بداية اليوم - حتى اخر اليوم - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : البحث بين تاريخين مع الوقت - من بداية اليوم - حتى اخر اليوم (/showthread.php?tid=49094)



البحث بين تاريخين مع الوقت - من بداية اليوم - حتى اخر اليوم - moh61 - 11-06-24

السلام عليكم اريد حساب مصروف اليوم من بداية اليوم الى اخر اليوم ... علما بان التاريخ به وقت و ثواني



PHP كود :
 Dim cmd2 As New OleDbCommand("Select Sum(amountexpense) FROM Expenses where [Dateexpense]=@Dateexpense "connGet_landryInfo)
 
       cmd2.Parameters.AddWithValue("@Dateexpense"Date.Today.Date + New TimeSpan(001) < Date.Today.Date + New TimeSpan(235959))
 
        B4.Text cmd2.ExecuteScalar.ToString)
 
      



RE: البحث بين تاريخين مع الوقت - من بداية اليوم - حتى اخر اليوم - Taha Okla - 11-06-24

وعليكم السلام ورحمة الله وبركاته

أثناء كتاب الكود فكر بمنطقية وستجد الحل دون الوقوع بالأخطاء ..

مثلا عندك : [Dateexpense] هو حقل تاريخ ووقت.
ولكن جملة الإستعلام لديك للبحث ضمن الحقل : أنت وضعت قيمة منطقية جوابها إما نعم أو لاا
وهو عندما وضعت الكود التالي : 
كود :
Date.Today.Date + New TimeSpan(0, 0, 1) < Date.Today.Date + New TimeSpan(23, 59, 59)
 فهذه الجملة جملة منطقية أصغر أو لاا   وليست قيمة رقمية أو تاريخية (و جوابها إما [b]نعم أو لاا)..[/b]

بالنسبة لسؤالك أنت تريد مجاميع اليوم نفسه فليس المهم الساعات ولا الدقائق ولا الثواني 
فالمنطق يقول أن تجعل البحث عن تطابق اليوم والشهر والسنة وأترك الباقي فهو ليس مهم .. 
لذا عليك استخدام الدالة الـ Format
بالتالي تصبح جملة الاستعلام هي :
كود :
"Select Sum(amountexpense) FROM Expenses where Format([Dateexpense],'yyyy/MM/dd')=@Dateexpense "


أي أن  : 

كود :
Dim cmd2 As New OleDbCommand("Select Sum(amountexpense) FROM Expenses where Format([Dateexpense],'yyyy/MM/dd')=@Dateexpense ", connGet_landryInfo)
       cmd2.Parameters.AddWithValue("@Dateexpense", DateTime.Today.ToString("yyyy/MM/dd"))
        B4.Text = cmd2.ExecuteScalar.ToString)


ملاحظة : 
- الأفضل أن تجعل البحث عن قيمة موجودة ضمن DateTimePicker1   وليس قيمة جامدة ..
وتجعلها إفتراضياً تأخذ اليوم الذي أنت فيه.. فإن شاء المستخدم عدل التاريخ فيها وحسب قيمة يوم آخر ربما الأمس مثلاً ..

- دقق الكود جيداً وصححه ليناسب برنامجك ..

بالتوفيق ..


RE: البحث بين تاريخين مع الوقت - من بداية اليوم - حتى اخر اليوم - moh61 - 12-06-24

مشكور اخي

طيب كيف حيكون بالنسبة للبحث داخل التقارير ... كيف ممكن اعدل هنا بنفس الفكرة ... بس علما هنا راح يكون البحث بين تاريخين وليس نفس اليوم

لان ما زبط معي بالتقارير .. ابحث عبر DateTimePicker1 ولازم احط الثواني والوقت والتاريخ
PHP كود :
Try
            
Me.Customers1TableAdapter.Fill(Me.Laundry_DatabaseDataSet.Customers1)
            
Dim query =
             
From x In Laundry_DatabaseDataSet.Customers1
             Where 
(x.dataofpayment >= Date1.Value) And (x.dataofpayment <= Date2.Value)
            
ReportViewer1.LocalReport.DataSources(0).Value query
            Me
.ReportViewer1.RefreshReport()
        Catch 
ex As Exception
        End 
Try 



RE: البحث بين تاريخين مع الوقت - من بداية اليوم - حتى اخر اليوم - Taha Okla - 12-06-24

حتى البحث بين تاريخين ما بيحتاج تضع الساعة والثواني ..

الوقت يظهر بالفواتير وضروري في تسجيل وقت الحدث .. صباحاً أم مساءاً،
أي ساعة بالتحديد : من أجل مراجعة الكيمرات مثلاً أو معرفة نوبة من كانت وغيرها ...

ولو ظهرت ضرورة بالبحث عليك استخدام طريقة مشابه كما فعلنا سابقاً 
مثلاً 
كود :
Format(xxxx,"yyyy/MM/dd - HH:mm:ss"

الأمر مرن جداً ومتاح للتعديل بحسب ما يحتاجه الوضع..
فكر وجرب واعتمد..