今天学习mysql日期与时间函数。
1,获取当前日期:
mysql> SELECT curdate();
+------------+
| curdate() |
+------------+
| 2010-11-16 |
+------------+
1 row in set
mysql> SELECT CURRENT_DATE();
+----------------+
| CURRENT_DATE() |
+----------------+
| 2010-11-16 |
+----------------+
1 row in set
2,获取当前时间:
mysql> SELECT curtime();
+-----------+
| curtime() |
+-----------+
| 12:48:40 |
+-----------+
1 row in set
mysql> SELECT CURRENT_TIME();
+----------------+
| CURRENT_TIME() |
+----------------+
| 12:49:00 |
+----------------+
1 row in set
3,获取当前时间日期:
mysql> SELECT now();
+---------------------+
| now() |
+---------------------+
| 2010-11-16 12:50:39 |
+---------------------+
1 row in set
mysql> SELECT CURRENT_TIMESTAMP();
+---------------------+
| CURRENT_TIMESTAMP() |
+---------------------+
| 2010-11-16 12:51:01 |
+---------------------+
1 row in set
注意:在一个单一询问中,对诸如NOW() 的函数多次访问总是会得到同样的结果。
日期增减:
这些函数执行日期运算。
date 是一个 DATETIME 或DATE值,用来指定起始时间。
expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 Expr是一个字符串;对于负值的时间间隔,它可以以一个 '-'开头。
type 为关键词,它指示了表达式被解释的方式。
关键词INTERVA及 type 分类符均不区分大小写。
MySQL 允许任何expr 格式中的标点分隔符。表中所显示的是建议的 分隔符。若 date 参数是一个 DATE 值,而你的计算只会包括 YEAR、MONTH和DAY部分(即, 没有时间部分), 其结果是一个DATE 值。否则,结果将是一个 DATETIME值。
1,指定日期1秒后:
2,指定日期1天后:
3,指定日期减去10小时:
4,指定日期的一个月前:
5,指定日期的前一天:
6,将日期时间转换成指定格式:
DATE_FORMAT(date,format)
根据format 字符串安排date 值的格式。所有其它字符都被复制到结果中,无需作出解释。注意,'%'字符要求在格式指定符之前。月份和日期说明符的范围从零开始,原因是 MySQL允许存储诸如 '2004-00-00'的不完全日期。
mysql> SELECT DATE_FORMAT( FROM_UNIXTIME( 1290996580 ), '%Y-%m-%d %H:%i:%s' );
+-----------------------------------------------------------------+
| DATE_FORMAT( FROM_UNIXTIME( 1290996580 ), '%Y-%m-%d %H:%i:%s' ) |
+-----------------------------------------------------------------+
| 2010-11-29 10:09:40 |
+-----------------------------------------------------------------+
1 row in set
mysql> SELECT DATE_FORMAT( FROM_UNIXTIME( 1290996580 ) , '%Y-%m-%d' );
+---------------------------------------------------------+
| DATE_FORMAT( FROM_UNIXTIME( 1290996580 ) , '%Y-%m-%d' ) |
+---------------------------------------------------------+
| 2010-11-29 |
+---------------------------------------------------------+
1 row in set
下面两个mysql时间戳的函数:
返回'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS 格式值的unix_timestamp参数表示,具体格式取决于该函数是否用在字符串中或是数字语境中。
若format 已经给出,则结果的格式是根据format 字符串而定。 format 可以包含同DATE_FORMAT() 函数输入项列表中相同的说明符。
mysql> SELECT FROM_UNIXTIME(875996580);
+--------------------------+
| FROM_UNIXTIME(875996580) |
+--------------------------+
| 1997-10-05 04:23:00 |
+--------------------------+
1 row in set
mysql> SELECT FROM_UNIXTIME(875996580) + 0;
+------------------------------+
| FROM_UNIXTIME(875996580) + 0 |
+------------------------------+
| 19971005042300.000000 |
+------------------------------+
1 row in set
MySql unix时间转换成SQLServer适用的时间格式: