ฟังก์ชัน NOW() และ SYSDATE() คืนค่า timestamp ปัจจุบันทั้งคู่ แตผลลัพธ์ขึ้นอยู่กับเวลาการรันคำสั่ง ทำให้แตกต่างกันมาก
NOW() คืนเวลาคงที่ แสดงเวลาที่คำสั่งเริ่มรัน ในขณะที่ SYSDATE() คืนเวลาจริงที่คำสั่งนั้นรัน ตัวอย่างแสดงความแตกต่าง:
mysql> SELECT NOW(), SLEEP(5), NOW(); +---------------------+----------+---------------------+ | NOW() | SLEEP(5) | NOW() | +---------------------+----------+---------------------+ | 2017-10-31 09:57:36 | 0 | 2017-10-31 09:57:36 | +---------------------+----------+---------------------+ 1 row in set (5.11 sec)
คำสั่งด้านบนแสดงว่า NOW() คืนเวลาเดียวกัน แม้มี SLEEP(5) รอ 5 วินาที
mysql> SELECT SYSDATE(), SLEEP(5), SYSDATE(); +---------------------+----------+---------------------+ | SYSDATE() | SLEEP(5) | SYSDATE() | +---------------------+----------+---------------------+ | 2017-10-31 09:58:13 | 0 | 2017-10-31 09:58:18 | +---------------------+----------+---------------------+ 1 row in set (5.00 sec)
ในทางตรงข้าม SYSDATE() คืนเวลาที่แตกต่างกัน เพิ่มขึ้น 5 วินาที ตามเวลาจริงที่รัน