MariaDB 中 SYSDATE() 和 NOW() 之间的区别
发布于
在 MariaDB 中,和 函数的相似之处在于它们返回当前日期和时间。SYSDATE()NOW()
但是,有一个重要的区别:返回它执行的时间,而返回语句开始执行的时间。SYSDATE()``NOW()
在存储过程或触发器中运行时,将返回其执行时间,而将返回存储过程或触发器开始执行的时间。SYSDATE()``NOW()
示例
首先,让我们看看这两个函数如何产生不同的结果。
SELECT
NOW(),
SYSDATE(),
SLEEP(5),
NOW(),
SYSDATE();
结果(使用垂直输出):
NOW(): 2021-05-27 09:22:08
SYSDATE(): 2021-05-27 09:22:08 SLEEP(5): 0 NOW(): 2021-05-27 09:22:08 SYSDATE(): 2021-05-27 09:22:13
在这里,我们使用函数在第二批函数调用之前暂停处理五秒钟。SLEEP()
我们可以看到第二次被调用,它的返回值与第一次不同。 另一方面,两次都返回相同的值。SYSDATE()``NOW()
其他注意事项
使用这两个函数,还有其他一些注意事项:
SET TIMESTAMP不影响 ,但_会影响_函数。SYSDATE()``NOW()SYSDATE()如果使用基于语句的二进制日志记录,则复制不安全。但是,如果需要,有一些方法可以解决这个问题。您可以使用命令是别名的非默认选项,以使其可以安全地进行复制。有关更多信息,请参阅SYSDATE()的 MariaDB 文档。--sysdate-is-now``SYSDATE()``NOW()