MySQL การใช้งานฟังก์ชัน DATE()

ฟังก์ชัน DATE() ใช้เพื่อแยกและคืนค่าเฉพาะวันที่ จากค่าที่เป็น DATETIME, TIMESTAMP หรือแม้แต่ DATE ผลลัพธ์อยู่ในรูปแบบ YYYY-MM-DD ถ้าค่าที่รับเข้ามาเป็น DATE อยู่แล้ว ผลลัพธ์จะเหมือนเดิม เหมาะสำหรับการเปรียบเทียบหรือแสดงผลเฉพาะวันที่ โดยตัดเวลาออก

ประโยชน์ของฟังก์ชัน DATE()

  1. แยกเฉพาะวันที่ ออกจาก DATETIME หรือ TIMESTAMP
  2. ใช้เปรียบเทียบวันที่โดยไม่สนใจเวลา
  3. เหมาะสำหรับจัดกลุ่ม (GROUP BY) หรือกรอง (WHERE) ตามวัน
  4. ใช้ร่วมกับฟังก์ชันอื่น เช่น 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;
แชร์เรื่องนี้