Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > ค้นหา โดยใช้คำสั่ง sql Between @rpStart And @rpTo มันใช้ได้กรณีที่อยู่ระหว่างกลาง



 

ค้นหา โดยใช้คำสั่ง sql Between @rpStart And @rpTo มันใช้ได้กรณีที่อยู่ระหว่างกลาง

 



Topic : 136242



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์




ค้นหา โดยใช้คำสั่ง sql

Between @rpStart And @rpTo มันใช้ได้กรณีที่อยู่ระหว่างกลาง

เช่น ค้นหาวันที่ 4/7/2539 To 10/7/2539
มันจะแสดงดังนี่้ เห็นวันที่ 5/7/2539




แต่พอค้นหาวันที่ 5/7/2539 To 10/7/2539 ดังรูปข้างต้นนี้
มันกลับไม่แสดงวันที่ 5/7/2539




ผมใช้ C#.NET
ฐานข้อมูล MSSQL 2019
รายงานใช้ RDLC REPORT



CODE C# มีดังนี้

Code (C#)
   SqlConnection Conn = new SqlConnection(@"Data Source=.;Initial Catalog=Northwind;Integrated Security=True");
        private void btnShow_Click(object sender, EventArgs e)
        {
            string sql = "Select * from orders Where OrderDate Between @rpStart AND @rpTo";
            SqlCommand cmd = new SqlCommand(sql, Conn);
            cmd.Parameters.AddWithValue("@rpStart", Convert.ToDateTime(dtpStart.Value));
            cmd.Parameters.AddWithValue("@rpTo", Convert.ToDateTime(dtpTo.Value));

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);

            reportViewer1.LocalReport.DataSources.Clear();
            ReportDataSource source = new ReportDataSource("DataSet1", dt);
            reportViewer1.LocalReport.ReportPath = @"..\..\Report1.rdlc";
            reportViewer1.LocalReport.DataSources.Add(source);

            ReportParameterCollection rp = new ReportParameterCollection();
            rp.Add(new ReportParameter("rpStart", dtpStart.Value.ToString("dd-MM-yyyy 00:00:00")));
            rp.Add(new ReportParameter("rpTo", dtpTo.Value.ToString("dd-MM-yyyy 00:00:00")));

            reportViewer1.LocalReport.SetParameters(rp);
            reportViewer1.RefreshReport();
        }




Tag : .NET, Ms SQL Server 2016, Report Others, C#, VS 2017 (.NET 4.x), Windows









ประวัติการแก้ไข
2021-07-02 21:04:21
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2021-07-02 12:28:47 By : wavezaa View : 614 Reply : 5
 

 

No. 1



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ผมทำได้แล้วครับ

คือว่าเปลี่ยน
cmd.Parameters.AddWithValue("@rpStart", Convert.ToDateTime(dtpStart.Value));
cmd.Parameters.AddWithValue("@rpTo", Convert.ToDateTime(dtpTo.Value));

เปลี่ยนเป็น
cmd.Parameters.AddWithValue("@rpStart", Convert.ToDateTime(dtpStart.Value.ToString("dd-MM-yyyy 00:00:00")));
cmd.Parameters.AddWithValue("@rpTo", Convert.ToDateTime(dtpTo.Value.ToString("dd-MM-yyyy 00:00:00")));






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-07-02 13:11:48 By : wavezaa
 


 
ไม่แน่ใจว่า ในฐานข้อมูลเก็บวันที่เป็นแบบไหนครับ แบบเก็บเวลาด้วยหรือเปล่าครับ
และก็รูปแบบวันที่ด้วยเป็น ค.ศ. หรือ พ.ศ. เพราะถ้าส่งไปแบบไม่แปลงอะไรเลยก็จะได้วันที่
ไม่ตรงกับที่ต้องการเอานะครับ หรือไม่ก็ลองเอา Query ไปรันดูก่อนว่าเรากำหนด parameter ถูกไหม
และก็แอบงงอีกว่าทำไหม report ต้องมี parameter อีก ทั้งๆ ที่เราก็ค้นหาข้อมูลที่ต้องการมาแล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-07-02 13:18:25 By : บัญดิษฐ
 

 

No. 3



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : wavezaa เมื่อวันที่ 2021-07-02 13:11:48
รายละเอียดของการตอบ ::
ที่มันได้เพราะมันอยู่ใน เดือนเดียวกัน ปีเดียวกันหรือเปล่า ถ้าข้ามเดือนข้ามปี ตายอยู่ดีนั่นแหล่ะ


หลักการ priority ของตัวเลข คือ สูงกว่าอยู่ ซ้าย หลักพัน หลักร้อย หลักสิบ หลักหน่วย
ปี - เดือน - วัน เป็นรูปแบบ ที่ใช้ในการ จัดเรียงที่ถูกต้อง

เมื่อจัด เป็น วัน เดือน ปี มันผิดหลัก priority

Code (PHP)
if( '10-12-2021'  < '20-11-2021'){
   echo '10-12-2021 < 20-11-2021';
}else{
   echo '10-12-2021 >  20-11-2021' ;
}




ประวัติการแก้ไข
2021-07-02 14:54:13
2021-07-02 14:54:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-07-02 14:53:16 By : Chaidhanan
 


 

No. 4



โพสกระทู้ ( 12 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2021-07-02 13:18:25
รายละเอียดของการตอบ ::
ฐานข้อมูลที่ใช้ในการทดลองคือ ฐานข้อมูล Northwind สำหรับ MSSQL ครับ

Order

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-07-02 20:58:34 By : wavezaa
 


 

No. 5



โพสกระทู้ ( 249 )
บทความ ( 0 )



สถานะออฟไลน์


format ต้องเหมือนกันหรือเปล่า

Code (C#)
// CONVERT(VARCHAR(10),OrderDate,120) จะเป็นรูปแบบ yyyy-MM-dd 
string sql = "Select * from orders Where CONVERT(VARCHAR(10),OrderDate,120) Between @rpStart AND @rpTo";

//เห็นใน database เป็น คศ จึงใช้ "en-US" แต่ถ้าเป็น พศ ต้องใช้ "th-TH"
cmd.Parameters.AddWithValue("@rpStart", dtpStart.Value.ToString("yyyy-MM-dd", new CultureInfo("en-US")));


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-07-03 09:14:36 By : nPointXer
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ค้นหา โดยใช้คำสั่ง sql Between @rpStart And @rpTo มันใช้ได้กรณีที่อยู่ระหว่างกลาง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่