`
xitong
  • 浏览: 6197724 次
文章分类
社区版块
存档分类
最新评论

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()执行如下:

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

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


SYSDATE执行如下:

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

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

其上其它函数执行如下:

mysql> select now(),sysdate(),curdate(),curtime(),unix_timestamp()\G;
*************************** 1. row ***************************
           now(): 2012-09-23 07:00:05
       sysdate(): 2012-09-23 07:00:05
       curdate(): 2012-09-23
       curtime(): 07:00:05
unix_timestamp(): 1348408805
1 row in set (0.00 sec)


分享到:
评论

相关推荐

    MySQL与Oracle的语法区别详细对比

    Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,’yyyy-mm-dd’) from dual; SQL> select to_char(sysdate,’hh24-mi-ss’) from dual; mysql> select date_format(now(),’%Y-%m-%d’); mysql> ...

    sysdate计算.doc

    sysdate计算.doc sysdate计算.doc sysdate计算.doc

    mysql的日期和时间函数

     在 MySQL 3.23 中,如果表达式的右边是一个日期值或一个日期时间型字段,你可以使用 + 和 - 代替 DATE_ADD() 和 DATE_SUB()(示例如下)。 参数 date 是一个 DATETIME 或 DATE 值,指定一个日期的...

    sysdate.patch

    参考博客:PostgreSQL的学习心得和知识总结(二十九)|PostgreSQL数据库兼容Oracle的SYSDATE函数的实现

    MySQL常用命令

    MySQL常用命令 日期 / 时间函数 -- 当前日期时间 select now() select sysdate() select current_timestamp() -- 当前日期 select current_date() -- 当前时间 select current_time() -- 获取日期部分 select ...

    ORACLE时间函数(SYSDATE)深入理解

    加法 select sysdate,add_months(sysdate,12) from dual; –加1年 select sysdate,add_months(sysdate,1) from dual; –加1月 select sysdate,to_char(sysdate+7,’yyyy-mm-dd HH24:MI:SS’) from dual; –加1星期 ...

    MySQL 获得当前日期时间 函数

    获得当前日期+时间(date + time)函数:now...sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了: mysql> select now

    oracle日期格式和java日期格式区别 HH24:mm:ss和HH24:mi:ss的区别

    oracle日期格式和java日期格式...oracle中to_char(sysdate,'yyyy-mm-dd hh24:mm:ss')和to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')有着巨大差别: select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;【用这个】

    MySQL 数据库经典面试题

    3、数据库函数:数值处理函数round(四舍五入函数)、turncate(截取函数)、字符处理函数length(字符串/列名)、concat(列名/字符串)、日期时间处理函数curdate、curtime、sysdate、year 4、什么是视图?如何...

    MYSQL,SQLSERVER,ORACLE常用的函数

    SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...

    PHP+mysql防止SQL注入的方法小结

    复制代码 代码如下:SELECT * FROM t WHERE a LIKE ‘%xxx%’ OR (IF(NOW=SYSDATE(), SLEEP(5), 1)) OR b LIKE ‘1=1 ‘; 案例2: 复制代码 代码如下:SELECT * FROM t WHERE a > 0 AND b IN(497 AND (SELECT * FROM

    各数据库获取当前系统时间.pdf

    各数据库获取当前系统时间 各数据库获取当前系统时间 1、 、SQL Server select getdate(); 2、 、Oracle select sysdate from dual; 3、 、MySql select sysdate();

    oracle中TIMESTAMP与DATE比较

    oracle中TIMESTAMP与DATE比较

    mysql 日期函数.txt

    1. 2.DAYOFWEEK(date) ...24.SYSDATE() 25.UNIX_TIMESTAMP() UNIX_TIMESTAMP(date) 26.FROM_UNIXTIME(unix_timestamp) FROM_UNIXTIME(unix_timestamp,format) 27.SEC_TO_TIME(seconds) 28.TIME_TO_SEC(time)

    oracle日期操作举例

     select sysdate,sysdate - interval ’7’ MINUTE from dual  当前时间减去7小时的时间  select sysdate - interval ’7’ hour from dual  当前时间减去7天的时间  select sysdate - interval ’7’ day ...

    sysdate-rpm

    oracle 11g所需软件包,Linux下安装数据库

    JAVA中获取当前时间

    java中获取当前系统时间的方法,是每一个程序员必须掌握的方法!

    各种主流数据库连接代码

    很多数据库的连接代码,需要的查一查就ok了,要的快快了

    SQL语句,查询当月,当年数据

    where t.create_time >=trunc(sysdate,'day')+1 and t.create_time(sysdate,'day')+6 本周(国内周一为一个星期第一天) where t.create_time >=trunc(next_day(sysdate-8,1)+1) and t.create_time(next_day...

Global site tag (gtag.js) - Google Analytics