query รายการที่กำลังใช้รถในวันนั้น ๆ

พอดีจะ query รายการที่ใช้รถของวันนั้น ๆ
ลอง ใช้เเล้ว query ไม่ขึ้นข้อมูลเลยครับ เพราะสาเหตุใดหรือครับ ทั้งๆที่ curdate ก็รีเทิร์นค่ากลับมาเป็นวันที่ ของวันนั้น ๆ อยู่เเล้ว
SELECT * FROM New_car.New_car_car_reservation
where vehicle_id = 1 and curdate() = begin
order by id desc limit 1
16 มี.ค. 2565 4 545

SELECT * FROM New_car.New_car_car_reservation
where vehicle_id = 4
and now()
and status = 1
order by id desc limit 1 ; อันนี้ค่าที่ได้ได้รายการ ณ วันนั้นเวลานั้น เวลาปัจจุบัน เเต่ไม่ชัวร์ ช่วยเช็คหน่อยครับว่าใช้ได้ไหม
#1

การตรวจสอบด้วยวันที่ไม่ควรใช้ฟังก์ชั่นของ mysql ครับ เนื่องจากฟังก์ชั่นมันคืนค่า วินาที มาด้วย ดังนั้น query จะได้ข้อมูลยาก
ยกตัวอย่างที่ควรจะเป็น DATE(begin)='2002-03-16' แบบนี้ถึงจะคืนค่าตามวันที่เลือกมา
ถ้าเป็น Model ของ Kotchasan จะเขียนแบบนี้
->where(array(
array('vehicle_id', 1), // `vehicle_id`=1
array(\Kotchasan\Database\Sql::DATE('begin), date('Y-m-d)), // DATE(`begin`)='2002-03-16'
array('status', 1), // `status`=1
))
#2

อ้างอิงจาก ความคิดเห็น #2การตรวจสอบด้วยวันที่ไม่ควรใช้ฟังก์ชั่นของ mysql ครับ เนื่องจากฟังก์ชั่นมันคืนค่า วินาที มาด้วย ดังนั้น query จะได้ข้อมูลยาก
ยกตัวอย่างที่ควรจะเป็น DATE(begin)='2002-03-16' แบบนี้ถึงจะคืนค่าตามวันที่เลือกมา
ถ้าเป็น Model ของ Kotchasan จะเขียนแบบนี้
->where(array(
array('vehicle_id', 1), // `vehicle_id`=1
array(\Kotchasan\Database\Sql::DATE('begin), date('Y-m-d)), // DATE(`begin`)='2002-03-16'
array('status', 1), // `status`=1
))

ใช้ date_format ใน Sql ก็ไม่ดีเท่า ตั้งใน php ใช่ไหมครับอาจารย์
#3

มันไม่ใช่ไม่ดี แต่มันคืนค่าที่เราไม่ต้องการมาด้วยทำให้ผลลัทธ์มันผิด เราจำเป็นต้องควบคุมมันด้วยตัวเอง เพื่อให้ผลลัพท์ถูกต้อง
#4
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg, png ขนาดไฟล์ไม่เกิน 2M