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,037

HOME > .NET Framework > Forum > เลือกช่วงเวลา ในระบบจองครับ ไม่รู้จะทำเงื่อนไข อย่างไรดี sql server



 

เลือกช่วงเวลา ในระบบจองครับ ไม่รู้จะทำเงื่อนไข อย่างไรดี sql server

 



Topic : 128131



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



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



มือใหม่นพครับ กำลังทำระบบการจองครับ มีข้อสงสัยเงื่อนไขการเลือเวลาครับ SQL Server
ตัวอย่างข้อมูลครับ ....

[ID] [time_start] [time_end]
----------------------------------------------------
ID001 08.00 10.00
ID001 10.00 12.00
----------------------------------------------------

ผมเช็คโดย Where NewTimeStart >= [time_start] and NewTimeStart < [time_end]
and NewTimeEnd > [time_start]

ถ้าทำแบบนี้แล้ว
เมื่อ มีข้อมูลใหม่เข้ามา 08.00 - 10.00 ก็เช็คว่ามีแล้ว >>>>"จองคิวนี้ไม่ได้" ถูกแล้ว
เมื่อ มีข้อมูลใหม่เข้ามา 09.00 - 10.00 ก็เช็คว่ามีแล้ว >>>>"จองคิวนี้ไม่ได้" ถูกแล้ว
เมื่อ มีข้อมูลใหม่เข้ามา 09.00 - 10.00 ก็เช็คว่ามีแล้ว >>>>"จองคิวนี้ไม่ได้" ถูกแล้ว
แต่....
เมื่อ มีข้อมูลใหม่เข้ามา 07.00 - 10.00 จะต้องจองไม่ได้เพราะช่วงเวลาดังกล่าวมีคนจองแล้ว
ซึ่งในการ select ข้อมูลแบบนี้ของผมจะหลุดเงื่อนไปนี้ครับ ผมจะเช็คอย่างไรดีว่า ในช่วงเวลานี้มีคนจองไปแล้วไม่สามารถจองได้

ขอบคุณครับ



Tag : .NET, Ms SQL Server 2008, Web (ASP.NET), C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-06-28 15:38:06 By : thongchai001 View : 2132 Reply : 8
 

 

No. 1



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

Code
Where NewTimeStart >= [time_start] and NewTimeEnd <= [time_end]







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-28 16:18:19 By : lamaka.tor
 


 

No. 2



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-06-28 16:18:19
รายละเอียดของการตอบ ::
พอดีตอนแรกผมทำตามที่คุณ TOR_CHEMISTRY แนะนำแล้วผลปรากฏว่าเมื่อระบบมี 8.00 - 10.00 แล้ว หากมี คนถัดไปเข้ามาจองโดยใช้เวลา 07.00 - 10.00 จะหลุดเงื่อนไขครับ เพราะ07.00(newtimestart) น้อยกว่า timestart(08.00) ที่มีอยู่แล้วครับ เพราะผมเช็คว่า ถ้ามีข้อมูลนั้นแล้วใน server ก็จะไม่ บันทึก ขอบคุณครับ



ประวัติการแก้ไข
2017-06-29 08:58:22
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-29 08:56:14 By : thongchai001
 

 

No. 3



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 2 เขียนโดย : thongchai001 เมื่อวันที่ 2017-06-29 08:56:14
รายละเอียดของการตอบ ::

NewTimeStart = 7.00
NewTimeStart =10.00

Code
Where NewTimeStart >= [time_start] and NewTimeEnd <= [time_end]

จะได้ช่วงระหว่าง 7.0 ถึง 10.0 ซึ่งมันน่าจะครอบคลุม 8.0 กับ 9.00 ด้วยรึป่าวครับ

อันนี้ผมก็เดาล้วนๆเลยนะครับ(555)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-29 09:07:50 By : lamaka.tor
 


 

No. 4



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



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

ตอบความคิดเห็นที่ : 3 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-06-29 09:07:50
รายละเอียดของการตอบ ::
ถ้าแทนค่าด้วยค่าจะได้ว่า (7.00 >= 8.00) and (10.00 <= 10.00) อะครับก็เลยไม่ครอบคลุม ถ้าจะครอบคลุม Time_start ต้องเป็น 7.00 , NewTime_start ต้องเป็น 8.00 ผมก็เลยไม่รุ้จะแทนเงื่อนไขยังไงดีครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-29 09:28:23 By : thongchai001
 


 

No. 5



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



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


แนะนำว่าอย่าให้เวลาเริ่มต้นกับสิ้นสุดมันซ้อนทับกันครับ
อย่าง
เริ่ม 08.01 จบ 10.00
เริ่ม 10.01 จบ 12.00
แล้วเราจะเขียนสคริปง่ายขึ้น


Code (SQL)
declare @new_time_start as time, @new_time_end as time
set @new_time_start = cast('07:01:00' as time)
set @new_time_end = cast('09:00:00' as time)

select * 
from (
	select 'ID001' ID, cast('08:01:00' as time) time_start, cast('10:00:00' as time) time_end
	union all
	select 'ID001' ID, cast('10:01:00' as time) time_start, cast('12:00:00' as time) time_end
) tbTemp
where time_start between @new_time_start and @new_time_end
  or  time_end   between @new_time_start and @new_time_end



ประวัติการแก้ไข
2017-06-29 09:52:17
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-29 09:49:17 By : deksoke
 


 

No. 6



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



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

ตอบความคิดเห็นที่ : 5 เขียนโดย : deksoke เมื่อวันที่ 2017-06-29 09:49:17
รายละเอียดของการตอบ ::
ณ ตอนนี้ผม เขียนโดยบังเอิญ ได้เป็น where new_timestart < time_end and new_timeend > time_start ซึ่งแก้ปัญหาได้เฉยเลย ยังไม่แน่ใจว่าทำไมถึงแก้ได้ครับ = ='

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-29 09:59:04 By : thongchai001
 


 

No. 7



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 6 เขียนโดย : thongchai001 เมื่อวันที่ 2017-06-29 09:59:04
รายละเอียดของการตอบ ::
where new_timestart < time_end and new_timeend > time_start
ก็จะประมาณว่า

new_timestart <10.00 //1-9.59
และ
new_timeend >8.00 //8.01-0.00

มันจะกว้างไปไม๊ครับ
ลองทดสอบกับเวลาหลายๆช่วงดูครับ
ถ้าได้ก็น่าจะเหมาะเลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-29 10:12:12 By : lamaka.tor
 


 

No. 8



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



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

ตอบความคิดเห็นที่ : 7 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-06-29 10:12:12
รายละเอียดของการตอบ ::
ผมก็รุ้สึกว่ามันกว้างไปครับ 5555 แต่เหมือนมันคลุมขอบแขตเพราะ เงื่อนไน and อะครับ กำลัง test อยุ่เหมือนกันไม่รู้ว่าจะหลุด case ใหนรึเปล่าครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-29 10:15:28 By : thongchai001
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เลือกช่วงเวลา ในระบบจองครับ ไม่รู้จะทำเงื่อนไข อย่างไรดี sql server
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่