MySQL中有5个函数需要计算当前时间的值:
- NOW.返回时间,格式如:2012-09-23 06:48:28
- CURDATE,返回时间的日期,格式如:2012-09-23
- CURTIME,返回时间,格式如:06:48:28
- UNIX_TIMESTAMP,返回时间整数戳,如:1348408108
- 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)
分享到:
相关推荐
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
在 MySQL 3.23 中,如果表达式的右边是一个日期值或一个日期时间型字段,你可以使用 + 和 - 代替 DATE_ADD() 和 DATE_SUB()(示例如下)。 参数 date 是一个 DATETIME 或 DATE 值,指定一个日期的...
参考博客:PostgreSQL的学习心得和知识总结(二十九)|PostgreSQL数据库兼容Oracle的SYSDATE函数的实现
MySQL常用命令 日期 / 时间函数 -- 当前日期时间 select now() select sysdate() select current_timestamp() -- 当前日期 select current_date() -- 当前时间 select current_time() -- 获取日期部分 select ...
加法 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星期 ...
获得当前日期+时间(date + time)函数:now...sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了: mysql> select now
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;【用这个】
3、数据库函数:数值处理函数round(四舍五入函数)、turncate(截取函数)、字符处理函数length(字符串/列名)、concat(列名/字符串)、日期时间处理函数curdate、curtime、sysdate、year 4、什么是视图?如何...
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...
复制代码 代码如下: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
各数据库获取当前系统时间 各数据库获取当前系统时间 1、 、SQL Server select getdate(); 2、 、Oracle select sysdate from dual; 3、 、MySql select sysdate();
oracle中TIMESTAMP与DATE比较
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)
select sysdate,sysdate - interval ’7’ MINUTE from dual 当前时间减去7小时的时间 select sysdate - interval ’7’ hour from dual 当前时间减去7天的时间 select sysdate - interval ’7’ day ...
oracle 11g所需软件包,Linux下安装数据库
java中获取当前系统时间的方法,是每一个程序员必须掌握的方法!
很多数据库的连接代码,需要的查一查就ok了,要的快快了
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...