ฟังก์ชัน NOW() ใช้เพื่อคืนค่า “วันและเวลาปัจจุบัน” ของระบบ ในรูปแบบ DATETIME เหมาะกับการบันทึกเวลาการสร้างหรือปรับปรุงข้อมูล, การตรวจสอบเวลาที่ใช้ในระบบ และการทำงานกับ DATETIME
- รูปแบบที่ได้:
'YYYY-MM-DD HH:MM:SS' - สามารถระบุความละเอียดได้ เช่น
NOW(6)เพื่อให้ได้ไมโครวินาที
ประโยชน์ของฟังก์ชัน NOW()
- ใช้บันทึกวันเวลาในการเพิ่ม (
INSERT) หรือแก้ไข (UPDATE) ข้อมูล - ใช้กรองข้อมูลที่เกี่ยวกับวันเวลาปัจจุบัน เช่น ข้อมูลของวันนี้
- ใช้สร้าง timestamp สำหรับ log, ระบบสมาชิก, การสั่งซื้อ
- ใช้ร่วมกับฟังก์ชันวันเวลาอื่น ๆ เช่น
DATEDIFF(),YEAR(),HOUR()
รูปแบบการใช้งาน
NOW()
หรือ
NOW(fsp)
ตัวอย่างการใช้งาน
แสดงวันเวลาปัจจุบัน
SQL
SELECT NOW() AS current_datetime;
-- ผลลัพธ์: 2025-04-10 14:25:36ใช้ในคำสั่ง INSERT
SQL
INSERT INTO logs (user_id, log_time)
VALUES (101, NOW());ใช้ในคำสั่ง UPDATE
SQL
UPDATE members
SET last_login = NOW()
WHERE user_id = 101;ใช้ใน WHERE เพื่อกรองข้อมูลที่ยังไม่หมดอายุ
SQL
SELECT *
FROM coupons
WHERE expire_date > NOW();หาจำนวนวันระหว่างวันปัจจุบันกับวันสมัคร
SQL
SELECT DATEDIFF(NOW(), signup_date) AS days_since_signup
FROM members;ดึงเฉพาะวันที่จาก NOW()
SQL
SELECT DATE(NOW()) AS today_date;
-- ผลลัพธ์: 2025-04-10หมายเหตุ
NOW()จะให้ค่าเดียวกันตลอดทั้ง query statement ถ้าใช้หลายครั้งใน query เดียว ค่าจะเหมือนกันทุกจุด (cached) ถ้าต้องการเวลาจริง (แม้ในคำสั่งเดียวกัน) ให้ใช้SYSDATE()- Time Zone จะขึ้นอยู่กับการตั้งค่าของ MySQL Server