当前位置:首页 > MySQL

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

canca9年前 (2017-08-05)MySQL527

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是测试语句:

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

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

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

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

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

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

可以发现now()2个时间是相同的,因为都是取的开始执行sql的时间; 而sysdate()的2个时间不同,因为取的是执行这个函数的时间,2个函数之间sleep了2秒,所以也就相差2秒了。

也正因为有这个区别,我们一般在执行语句的时候,都是用NOW(),因为SYSDATE获取当时实时的时间,这有可能导致主库和从库是执行的返回值是不一样的,导致主从数据不一致。

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/16.html

标签: MySQL
分享给朋友:

“MySQL中SYSDATE()和NOW()的区别” 的相关文章

mysql 配置命令大全

--auto-rehash       Enable automatic rehashing. One doesn't need to use             …

Mysql中触发器的使用

在SQL中,名词触发器指“在数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。”(Wikipedia)说得简单一些,它是在一个特殊的数据库事件,如INSERT或DELETE发生时,自动激活的一段代码。触发器可方便地用...…

mysql存储过程执行动态SQL

不需要使用游标循环来读取,直接select * into @变量就OK了,还可以传递参数来执行。 MySql通用分页存储过程 过程参数 4 p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4000),p_order varc…

sql语句查询经纬度范围

sql语句查询经纬度范围

指定一个经纬度,给定一个范围值(单位:千米),查出在经纬度周围这个范围内的数据。 经度:113.914619 纬度:22.50128 范围:2km longitude为数据表经度字段 latitude为数据表纬度字段 SQL在mysql下测…

MySQL表索引损坏致Crash及修复过程实例

监控到一台MySQL实例在早上发生过Crash,上去看了一下,已经被mysqld_safe成功拉起。上去检查一下错误日志,发现错误日志如下(已对表名,库名,路径做脱敏处理):…

Mysql分页查询丢失数据

问题场景描述将一个sql的查询结果集导出为文件,由于一次查询结果集可能上百万条,在开发环境和测试环境均造成了内存溢出的问题。因此改为分页查询数据的方式,虽然慢点,但是规避了内存溢出的问题。但是,在这一百多万条导出的数据中,发现导出的文件中的数据与数据库直接查询出的数据不一致。偶发性的部分数据缺失,部…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。