MySQL中SYSDATE()和NOW()函数的区别和联系

MySQL中有5个函数需要计算当前时间的值:

  1. NOW.返回时间,格式如:2012-09-23 06:48:28
  2. CURDATE,返回时间的日期,格式如:2012-09-23
  3. CURTIME,返回时间,格式如:06:48:28
  4. UNIX_TIMESTAMP,返回时间整数戳,如:1348408108
  5. SYSDATE,返回时间,格式和time()函数返回时间一样,但是有区别。

除了本身定义所返回的区别以外,另一个区别是:前四个函数都是返回基于语句的开始执行时间,而SYSDATE返回time的值。

通过比较,可以发现这两个函数的区别:

NOW()执行如下:

  1. mysql> select now(),sleep(2),now();
  2. +---------------------+----------+---------------------+
  3. | now()               | sleep(2) | now()               |
  4. +---------------------+----------+---------------------+
  5. | 2012-09-23 06:54:29 |        0 | 2012-09-23 06:54:29 |
  6. +---------------------+----------+---------------------+
  7. 1 row in set (2.00 sec)

其返回的两个值是一样的,因为都是表示语句开始执行的时间。

SYSDATE执行如下:

  1. mysql> select sysdate(),sleep(2),sysdate();
  2. +---------------------+----------+---------------------+
  3. | sysdate()           | sleep(2) | sysdate()           |
  4. +---------------------+----------+---------------------+
  5. | 2012-09-23 06:55:00 |        0 | 2012-09-23 06:55:02 |
  6. +---------------------+----------+---------------------+
  7. 1 row in set (2.01 sec)

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

其上其它函数执行如下:

时间: 2024-08-25 06:41:30

MySQL中SYSDATE()和NOW()函数的区别和联系的相关文章

mysql 中 时间和日期函数

原文链接: mysql 中 时间和日期函数 - redfox - 博客园 http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.html ----------------------------------------------------------------------------------------------------------------------------------------------------

mysql中timestamp,datetime,int类型的区别与优劣

mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mysql提供的时间函数 结论:适合需要进行大量时间范围查询的数据表 datetime 1. 占用8个字节 2. 允许为空值,可以自定义值,系统不会自动修改其值. 3. 实际格式储存(Just stores what you have stored and retrieves the same thing

mysql 中时间和日期函数应用

一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ | 2015-01-22 22:20:46 | +---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_

MySQL中char和varchar有啥区别?优缺点是啥?

在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型. char与varchar的区别 char (13)长度固定, 如'www.jb51.net' 存储需要空间 12个字符: varchar(13) 可变长 如'www.jb51.net' 需要存储空间 13字符:从上面可以看得出来char 长度是固定的,不管你存储的数据是多少他都会都固定的长度.而varchar则处可变长度但他要在总长

mysql中获取时间的函数

今天做项目,有一个获取七天前日期的数据的一个需求.然后就百度mysql中关于时间的函数.收集了一些.现记录如下: 参考地址:http://www.w3school.com.cn/sql/sql_dates.asp -- 获取当前时间SELECT NOW() SELECT CURDATE()SELECT CURRENT_DATE()SELECT CURRENT_TIME()SELECT CURRENT_TIMESTAMP()SELECT CURTIME() -- DATE_SUB() 函数从日期减

JS中构造函数与普通函数的区别及JS构造函数、原型和实例的关系

JS中构造函数与普通函数的区别: https://www.cnblogs.com/cindy79/p/7245566.html JS构造函数.原型和实例的关系: https://blog.csdn.net/u012443286/article/details/78823955 JavaScript构造函数及原型对象: https://blog.csdn.net/a153375250/article/details/51083245 原文地址:https://www.cnblogs.com/jim

Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用

Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str()或者 repr() . >>> a = 10 >>> type(str(a)) <class 'str'> >>> type(repr(a)) <class 'str'> 但是这二者之间有什么区别呢?因

MySQL存储过程/存储过程与自定义函数的区别

语法: 创建存储过程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parameter ...]]) [ characteristics..] routime_body 其中: proc_parameter : [IN|OUT|INOUT] parameter_name type 其中IN表示输入参数,OUT表示输出参数,INOUT表示既可以输入也可以输出:param_name

(转)MySQL存储过程/存储过程与自定义函数的区别

转自:http://www.cnblogs.com/caoruiy/p/4486249.html 语法: 创建存储过程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parameter ...]]) [ characteristics..] routime_body 其中: proc_parameter : [IN|OUT|INOUT] parameter_name type