1、在mysql中,Now()和SYSTEM()函数返回的都是当前的时间戳值,且格式一样,如下
2、具体区别在于两者的输出结果取决于执行时间,这造成了它们之间很大的差异,如下:
2.1 NOW()函数返回一个稳定的时间,指的是特定语句开始执行的时间。
mysql> Select NOW(), SLEEP(10), NOW();
+---------------------+----------+---------------------+
| NOW() | SLEEP(10) | NOW() |
+---------------------+----------+---------------------+
| 2023-09-13 14:21:39 | 0 | 2023-09-13 14:21:39 |
+---------------------+----------+---------------------+
从上面可以看出,NOW()函数返回的是开始执行的时间,因为即使系统休眠了10秒钟,仍然返回相同的值
2.2 SYSDATE()函数返回在语句执行时的准确时间
Select SYSDATE(), SLEEP(10), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE() | SLEEP(10) | SYSDATE() |
+---------------------+----------+---------------------+
| 2023-09-13 14:21:44 | 0 | 2023-09-13 14:21:54 |
+---------------------+----------+---------------------+
而上面的查询表明SYSDATE()函数返回的是语句执行时的时间,即会加上查询消耗的时间,因为经过10秒的系统休眠后,第二个SYSTEM()返回的值实际上增加了10秒钟。