ฟังก์ชัน DATE() ใช้เพื่อแยกและคืนค่าเฉพาะวันที่ จากค่าที่เป็น DATETIME, TIMESTAMP หรือแม้แต่ DATE ผลลัพธ์อยู่ในรูปแบบ YYYY-MM-DD ถ้าค่าที่รับเข้ามาเป็น DATE อยู่แล้ว ผลลัพธ์จะเหมือนเดิม เหมาะสำหรับการเปรียบเทียบหรือแสดงผลเฉพาะวันที่ โดยตัดเวลาออก
ประโยชน์ของฟังก์ชัน DATE()
- แยกเฉพาะวันที่ ออกจาก
DATETIMEหรือTIMESTAMP - ใช้เปรียบเทียบวันที่โดยไม่สนใจเวลา
- เหมาะสำหรับจัดกลุ่ม (
GROUP BY) หรือกรอง (WHERE) ตามวัน - ใช้ร่วมกับฟังก์ชันอื่น เช่น
NOW(),CURDATE(),DATE_FORMAT()
รูปแบบการใช้งาน
DATE(expression)
expressionคือค่าที่เป็นชนิดDATETIME,TIMESTAMP,DATE, หรือข้อความ (string) ที่เป็นรูปแบบวันเวลา
ตัวอย่างการใช้งาน
ดึงเฉพาะวันที่จาก DATETIME
SQL
SELECT DATE('2025-04-10 15:30:00') AS only_date;
-- ผลลัพธ์: 2025-04-10ใช้กับ NOW() เพื่อตัดเวลาออก
SQL
SELECT DATE(NOW()) AS today;
-- ถ้า NOW() = '2025-04-10 14:00:00' → ผลลัพธ์: 2025-04-10ใช้ในเงื่อนไข WHERE เพื่อเปรียบเทียบเฉพาะวัน
SQL
SELECT *
FROM orders
WHERE DATE(order_datetime) = CURDATE();นับจำนวนคำสั่งซื้อรายวัน
SQL
SELECT DATE(order_date) AS order_day, COUNT(*) AS total_orders
FROM orders
GROUP BY DATE(order_date);แสดงรายการล็อกอินล่าสุดของผู้ใช้เฉพาะวัน
SQL
SELECT user_id, DATE(login_time) AS login_date
FROM login_logs
ORDER BY login_time DESC
LIMIT 5;