วิธีที่ดีที่สุดในการทำดังต่อไปนี้คือ:
SELECT * FROM users WHERE created >= today;
หมายเหตุ: created เป็นฟิลด์ datetime
วิธีที่ดีที่สุดในการทำดังต่อไปนี้คือ:
SELECT * FROM users WHERE created >= today;
หมายเหตุ: created เป็นฟิลด์ datetime
คำตอบ:
SELECT * FROM users WHERE created >= CURDATE();
แต่ฉันคิดว่าคุณหมายถึง created < today
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
อ่านเพิ่มเติม: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
SELECT * FROM users WHERE created >= NOW();
ถ้าคอลัมน์เป็นประเภทวันที่และเวลา
หาก 'สร้าง' เป็นประเภทวันที่และเวลา
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE () หมายถึง '2013-05-09 00:00:00'
คำตอบที่ทำเครื่องหมายไว้นั้นทำให้เข้าใจผิด คำถามที่ระบุไว้มีแต่ระบุสิ่งที่ถูกต้องเป็นเพียงแค่DateTime
CURDATE()
คำตอบที่สั้นที่สุดและถูกต้องนี้คือ:
SELECT * FROM users WHERE created >= CURRENT_TIMESTAMP;
หากคอลัมน์มีดัชนีและมีการใช้ฟังก์ชันในคอลัมน์ดัชนีจะไม่ทำงานและการสแกนตารางแบบเต็มเกิดขึ้นทำให้เกิดการสืบค้นที่ช้ามาก
การใช้ดัชนีและเปรียบเทียบวันที่และเวลาที่มีวันนี้วันที่ / ปัจจุบันต่อไปนี้สามารถนำมาใช้
โซลูชันสำหรับ OP:
select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')
ตัวอย่างเพื่อรับข้อมูลสำหรับวันนี้:
select * from users
where
created >= CONCAT(CURDATE(), ' 00:00:00') AND
created <= CONCAT(CURDATE(), ' 23:59:59')
หรือใช้ระหว่างระยะสั้น
select * from users
where created BETWEEN
CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')
SELECT * FROM users WHERE created >= now()
รหัสด้านล่างใช้งานได้สำหรับฉัน
declare @Today date
Set @Today=getdate() --date will equal today
Select *
FROM table_name
WHERE created <= @Today
SELECT * FROM table_name WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) , '-', SUBSTRING( json_date, 7, 2 ) , '-', SUBSTRING(json_date, 3, 2 ) ) >= NOW();
json_date ["05/11/2011"]
คุณสามารถส่งคืนแถวทั้งหมดและแทนที่จะใช้ฟังก์ชัน php dateiff ภายในคำสั่ง if แม้ว่าจะเพิ่มภาระพิเศษบนเซิร์ฟเวอร์
if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){
}else{
echo " info here";
}
CURDATE()
กลับวันที่เท่านั้นไม่ใช่เวลา