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

ฟังก์ชัน NOW() ใช้เพื่อคืนค่า “วันและเวลาปัจจุบัน” ของระบบ ในรูปแบบ DATETIME เหมาะกับการบันทึกเวลาการสร้างหรือปรับปรุงข้อมูล, การตรวจสอบเวลาที่ใช้ในระบบ และการทำงานกับ DATETIME

  • รูปแบบที่ได้: 'YYYY-MM-DD HH:MM:SS'
  • สามารถระบุความละเอียดได้ เช่น NOW(6) เพื่อให้ได้ไมโครวินาที

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

  1. ใช้บันทึกวันเวลาในการเพิ่ม (INSERT) หรือแก้ไข (UPDATE) ข้อมูล
  2. ใช้กรองข้อมูลที่เกี่ยวกับวันเวลาปัจจุบัน เช่น ข้อมูลของวันนี้
  3. ใช้สร้าง timestamp สำหรับ log, ระบบสมาชิก, การสั่งซื้อ
  4. ใช้ร่วมกับฟังก์ชันวันเวลาอื่น ๆ เช่น 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
แชร์เรื่องนี้