สอบถาม SQL BETWEEN ผมเลือกวันที่ข้ามเดือนไม่ได้ เลือกแล้วข้อมูลมันไม่ออก
สอบถาม SQL BETWEEN ผมเลือกวันที่ข้ามเดือนไม่ได้ เลือกแล้วข้อมูลมันไม่ออก
มันเลือกได้เฉพาะ 1 - 31 ของแต่ละเดือน มันต้องเพิ่ม Code ไรไหมคับ
Code (VB.NET)
sql = "SELECT dbo.BCStkIssueSub.DocNo, "
sql &= " dbo.BCStkIssueSub.Price, dbo.BCStkIssueSub.JobNo, "
sql &= " dbo.BCFinishGoodsSub.ItemCode, dbo.BCFinishGoodsSub.ItemName, "
sql &= " dbo.BCFinishGoodsSub.WHCode, dbo.BCFinishGoodsSub.Qty, dbo.BCFinishGoodsSub.Cost, dbo.BCFinishGoodsSub.Amount, "
sql &= " dbo.BCFinishGoodsSub.JobNo, dbo.BCFinishGoodsSub.unitname, dbo.BCFinishGoodsSub.sum_qfeet, "
sql &= " dbo.BCFinishGoodsSub.sum_Amount "
sql &= " FROM dbo.BCFinishGoodsSub INNER JOIN"
sql &= " dbo.BCStkIssueSub ON dbo.BCFinishGoodsSub.DocNo = dbo.BCStkIssueSub.DocNo AND dbo.BCFinishGoodsSub.JobNo = dbo.BCStkIssueSub.JobNo"
sql &= " where convert(VARCHAR, BCStkIssueSub.DocDate, 103) between '" & selectday3 & "' AND '" & selectday4 & "'AND BCStkIssueSub.sum_Amount != ''"
ตรง Where ต้องเพิ่มไรเหรอคับTag : .NET, Ms SQL Server 2005, Web (ASP.NET), VB.NET
ประวัติการแก้ไข 2015-02-02 10:05:01
Date :
2015-02-02 10:04:17
By :
TheCom
View :
1455
Reply :
12
น่าจะเป็น format ของวันที่ ควรจะใช้ yyyy-mm-dd
Date :
2015-02-02 10:41:14
By :
Chaidhanan
ลอง excuted ใน Ms SQL Server 2005 ดูยังครับว่า syntex ที่ใช้ถูกป่าว
Ms SQL Server จะแจ้ง err ให้ครับ
Date :
2015-02-02 10:59:43
By :
lamaka.tor
ถ้าวันที่หลัง AND มันน้อยกว่าจะแสดงออกมาได้ก็คงแปลกแล้วล่ะครับ
Date :
2015-02-02 11:36:25
By :
Tungman
ต้องเพิ่มหรือเขียน Code ไงเหรอคับ
Date :
2015-02-02 11:39:52
By :
TheCom
between StartDate And EndDate
StartDate ต้องน้อยกว่าหรือเท่ากับ EndDate เสมอ
ประวัติการแก้ไข 2015-02-02 22:06:40
Date :
2015-02-02 11:44:49
By :
Chaidhanan
แต่ผมใส่ วันที่ 30/01/2015 กะ 01/02/2015 ก็ไม่ขึ้นนะ หรือว่าคนละเดือนก็ไม่ได้
where convert(VARCHAR, BCStkIssueSub.DocDate, 103) between '30/01/2015' AND '01/02/2015'
ประวัติการแก้ไข 2015-02-02 12:55:50
Date :
2015-02-02 12:55:31
By :
TheCom
เหมือน format มันจะไม่ได้เอาวันที่ขึ้นก่อน
ลอง
between '01/30/2015' AND '02/01/2015'
หรือ
between '2015/01/30' AND '2015/02/01'
ความจริงควรจัด format ตามที่ท่าน Chaidhanan บอกครับ
Date :
2015-02-02 13:17:06
By :
lamaka.tor
ถ้าใช้ convert VARCHAR มันจะเปลี่ยนเป็นตัวหนังสือน่ะครับ
ไม่ได้นับเป็นแบบวันที่
ถ้าข้อมูลเป็นในรูปแบบวันที่อยู่แล้ว ไม่ต้อง convert ครับ
รูปแบบวันที่ผมใช้ yyyy-MM-dd เสมอครับ
where BCStkIssueSub.DocDate between '2015-01-31' AND '2015-02-01'
Date :
2015-02-02 14:14:25
By :
fonfire
Code (VB.NET)
sql &= " where Cast( '" & Format(selectday3,"MM/dd/yyyy") & "' as date) >= CAST(BCStkIssueSub.DocDate AS DATE) AND CAST(BCStkIssueSub.DocDate AS DATE) <= Cast('" & Format(selectday4,"MM/dd/yyyy") & "' as date)"
ประวัติการแก้ไข 2015-02-02 21:27:37
Date :
2015-02-02 21:26:46
By :
deksoke
ขอบคุณคับทุกความคิดเห็นคับ ได้ละคับ
Date :
2015-02-03 11:11:47
By :
TheCom
Load balance : Server 00