MySQL中SYSDATE()和NOW()的区别

MySQL中有5个函数须要计算当前时间的值:now(),sysdate(),curdate(),curtime(),unix_timestamp(); now()和sysdate()都是返回当前时间(形如 yyyy-mm-dd hh:mm:ss); curdate()返回当前时间的日期(形如 yyyy-mm-dd); curtime()返回当前时间(形如 hh:mm:ss) unix_timestam()返回当前时间的时间戳(形如 1464326059)sql

下面的sql是测试语句:函数

select now(),sysdate(),curdate(),curtime(),unix_timestamp();

下面是执行结果: 输入图片说明测试

sysdate()和其余4个函数都是返回当前时间的相关信息,除了自己定义所返回的区别之外,sysdate()是返回执行这个函数的时间,其余4个函数返回语句开始执行时间unix

sysdate()和now()返回格式相同,拿它们2个作比较体验一下上述说的区别: 下面是sql的测试语句:code

select now(),sleep(2),now();
select sysdate(),sleep(2),sysdate();

下面是执行结果: 输入图片说明图片

能够发现now()2个时间是相同的,由于都是取的开始执行sql的时间; 而sysdate()的2个时间不一样,由于取的是执行这个函数的时间,2个函数之间sleep了2秒,因此也就相差2秒了。it

也正由于有这个区别,咱们通常在执行语句的时候,都是用NOW(),由于SYSDATE获取当时实时的时间,这有可能致使主库和从库是执行的返回值是不同的,致使主从数据不一致。date

相关文章
相关标签/搜索