MySQL笔记五之 日期和时间函数
来源:互联网 发布:传奇3数据库 编辑:程序博客网 时间:2024/06/16 09:01
MySQL笔记五之 日期和时间函数
- MySQL笔记五之 日期和时间函数
- 获取当前日期的函数和获取当前时间的函数
- 获取当前日期和时间的函数
- 获取UNXI时间戳函数
- 返回UTC日期的函数和返回UTC时间的函数
- 获取月份的函数MONTHdate和MONTHNAMEdate
- 获取星期的函数DAYNAMEdateDAYOFWEEKdate和WEEKDAYdate
- 获取星期数WEEKd和WEEKOFYEARd
- 获取星期数WEEKd和WEEKOFYEARd
- 获取年份季度小时分钟和秒钟的函数
- 获取日期的指定值的函数EXTRACTtype FROM date
- 计算日期和时间的函数
- 将日期和时间格式化的函数
- MySQL笔记五之 日期和时间函数
1.获取当前日期的函数和获取当前时间的函数
mysql> SELECT CURDATE(),CURRENT_DATE(),CURDATE()+0;+------------+----------------+-------------+| CURDATE() | CURRENT_DATE() | CURDATE()+0 |+------------+----------------+-------------+| 2017-02-06 | 2017-02-06 | 20170206 |+------------+----------------+-------------+1 row in set (0.04 sec)mysql> SELECT CURTIME(),CURRENT_TIME(),CURTIME()+0;+-----------+----------------+-------------+| CURTIME() | CURRENT_TIME() | CURTIME()+0 |+-----------+----------------+-------------+| 19:42:14 | 19:42:14 | 194214 |+-----------+----------------+-------------+1 row in set (0.00 sec)
总结:
1.CURDATE()和CURRENT_DATE()函数作用相同,将当前的日期按照‘YYYY-MM-DD’或YYYYMMDD格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。
2.CCURTIME()和CURRENT_TIME()函数作用相同,将当前的日期按照‘HH:MM:SS’或HHMMSS格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。
2.获取当前日期和时间的函数
mysql> SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();+---------------------+---------------------+---------------------+---------------------+| CURRENT_TIMESTAMP() | LOCALTIME() | NOW() | SYSDATE() |+---------------------+---------------------+---------------------+---------------------+| 2017-02-06 19:51:12 | 2017-02-06 19:51:12 | 2017-02-06 19:51:12 | 2017-02-06 19:51:12 |+---------------------+---------------------+---------------------+---------------------+1 row in set (0.00 sec)
总结:
CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE()4个函数的作用相同,均返回当前日期和时间值。格式为‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS,具体格式根据当前函数在字符串或数字语境中而定。
3.获取UNXI时间戳函数
mysql> SELECT UNIX_TIMESTAMP(),UNIX_TIMESTAMP(NOW()),NOW();+------------------+-----------------------+---------------------+| UNIX_TIMESTAMP() | UNIX_TIMESTAMP(NOW()) | NOW() |+------------------+-----------------------+---------------------+| 1486382315 | 1486382315 | 2017-02-06 19:58:35 |+------------------+-----------------------+---------------------+1 row in set (0.00 sec)mysql> SELECT FROM_UNIXTIME('1486382315');+-----------------------------+| FROM_UNIXTIME('1486382315') |+-----------------------------+| 2017-02-06 19:58:35 |+-----------------------------+1 row in set (0.00 sec)
总结:
1.FROM_UNIXTIME(date)函数UNIX时间戳转换为普通格式的时间,与UNIX_TIMESTAMP(date)函数互为反函数。
4.返回UTC日期的函数和返回UTC时间的函数
mysql> SELECT UTC_DATE(),UTC_DATE()+0;+------------+--------------+| UTC_DATE() | UTC_DATE()+0 |+------------+--------------+| 2017-02-06 | 20170206 |+------------+--------------+1 row in set (0.00 sec)mysql> SELECT UTC_TIME(),UTC_TIME()+0;+------------+--------------+| UTC_TIME() | UTC_TIME()+0 |+------------+--------------+| 12:17:59 | 121759 |+------------+--------------+1 row in set (0.00 sec)
总结:
1.UTC_DATE()函数返回当前的UTC(世界标准时间)日期值,其格式为‘YYYY-MM-DD’或YYYYMMDD,具体格式取决于函数是否用在字符串或数字语境中。
2.UTC_TIME()函数返回当前的UTC(世界标准时间)时间值,其格式为‘HH:MM:SS’或HHMMSS,具体格式取决于函数是否用在字符串或数字语境中。
5.获取月份的函数MONTH(date)和MONTHNAME(date)
mysql> SELECT MONTH('2017-02-06');+---------------------+| MONTH('2017-02-06') |+---------------------+| 2 |+---------------------+1 row in set (0.00 sec)mysql> SELECT MONTHNAME('2017-02-06');+-------------------------+| MONTHNAME('2017-02-06') |+-------------------------+| February |+-------------------------+1 row in set (0.00 sec)
总结:
1.MONTH(date)函数返回date对应月份,范围从1~12.
2.MONTHNAME(date)函数返回date对应月份的英文全全名.
6.获取星期的函数DAYNAME(date)、DAYOFWEEK(date)和WEEKDAY(date)
mysql> SELECT DAYNAME('2017-02-06');+-----------------------+| DAYNAME('2017-02-06') |+-----------------------+| Monday |+-----------------------+1 row in set (0.00 sec) mysql> SELECT DAYOFWEEK('2017-02-06');+-------------------------+| DAYOFWEEK('2017-02-06') |+-------------------------+| 2 |+-------------------------+1 row in set (0.00 sec) mysql> SELECT WEEKDAY('2017-02-06'),WEEKDAY('2017-02-06 19:58:35 ');+-----------------------+---------------------------------+| WEEKDAY('2017-02-06') | WEEKDAY('2017-02-06 19:58:35 ') |+-----------------------+---------------------------------+| 0 | 0 |+-----------------------+---------------------------------+1 row in set (0.00 sec)
总结:
1.DAYNAME(date)函数返回date对应的工作日的英文名。
2.DAYOFWEEK(date)返回date对应一周中的索引(位置)。1表示周日,2表示周一,…7表示周六。
3.WEEKDAY(date)返回date对应的工作日索引。0表示周一,1表示周二,…6表示周日。
4.DAYOFWEEK()和WEEKDAY()函数都是返回指定日期在一周内的位置,只是索引的编号不同。
7.获取星期数WEEK(d)和WEEKOFYEAR(d)
mysql> SELECT WEEK('2011-02-20'),WEEK('2011-02-20',0),WEEK('2011-02-20',1);+--------------------+----------------------+----------------------+| WEEK('2011-02-20') | WEEK('2011-02-20',0) | WEEK('2011-02-20',1) |+--------------------+----------------------+----------------------+| 8 | 8 | 7 |+--------------------+----------------------+----------------------+1 row in set (0.00 sec)mysql> SELECT WEEK('2011-02-20',3),WEEKOFYEAR('2011-02-20');+----------------------+--------------------------+| WEEK('2011-02-20',3) | WEEKOFYEAR('2011-02-20') |+----------------------+--------------------------+| 7 | 7 |+----------------------+--------------------------+1 row in set (0.00 sec)
总结:
1.WEEK()函数查询指定日期是一年中的第几周
2.WEEK(‘2011-02-20’)使用一个参数,其第二个参数为default_week_format默认值,为0,指定一周的第一天为周日,因此和WEEK(‘2011-02-20’,0)返回结果相同。第二个参数为1,指定一周的第一天为周一,返回值为7.
3.WEEKOFYEAR(d)计算某天位于一年中的第几周,返回是从1~53.相当于WEEK(d,3)
8.获取星期数WEEK(d)和WEEKOFYEAR(d)
mysql> SELECT DAYOFYEAR('2017-02-06');+-------------------------+| DAYOFYEAR('2017-02-06') |+-------------------------+| 37 |+-------------------------+1 row in set (0.00 sec)mysql> SELECT DAYOFMONTH('2017-02-06');+--------------------------+| DAYOFMONTH('2017-02-06') |+--------------------------+| 6 |+--------------------------+1 row in set (0.00 sec)
总结:
1.DAYOFYEAR(d)返回d是一年中的第几天,范围是从1~366;
2.DAYOFMONTH(d)返回d是一个月中的第几天,范围从1~31;
9.获取年份、季度、小时、分钟和秒钟的函数
mysql> SELECT YEAR('17-02-06'),YEAR('96-02-06');+------------------+------------------+| YEAR('17-02-06') | YEAR('96-02-06') |+------------------+------------------+| 2017 | 1996 |+------------------+------------------+1 row in set (0.00 sec)mysql> SELECT QUARTER('17-02-06');+---------------------+| QUARTER('17-02-06') |+---------------------+| 1 |+---------------------+1 row in set (0.00 sec)mysql> SELECT MINUTE('17-02-06 19:58:35');+-----------------------------+| MINUTE('17-02-06 19:58:35') |+-----------------------------+| 58 |+-----------------------------+1 row in set (0.00 sec)mysql> SELECT SECOND('19:58:35');+--------------------+| SECOND('19:58:35') |+--------------------+| 35 |+--------------------+1 row in set (0.00 sec)
总结:
1.YEAR(date)返回date对应的年份,范围是1970~2069.(‘00-69’转换为2000-2069,‘70-99’转换为1970-1999)
2.QUARTER(date)返回date对应的一年中的季度值,范围指定日期对应的季度。
3.MINUTE(time)返回time对应的分钟数,范围是0~59。
4.SECOND(time)返回time对应的秒数,范围是0~59。
10.获取日期的指定值的函数EXTRACT(type FROM date)
mysql> SELECT EXTRACT(YEAR FROM '2017-02-06') AS col1, -> EXTRACT(YEAR_MONTH FROM '2017-02-06 19:58:35') AS col2, -> EXTRACT(DAY_MINUTE FROM '2017-02-06 19:58:35') AS col3;+------+--------+-------+| col1 | col2 | col3 |+------+--------+-------+| 2017 | 201702 | 61958 |+------+--------+-------+1 row in set (0.07 sec)
总结:
1.EXTRACT(type FROM date)函数提取日期中的一部分。
2.type值为YEAR时,只返回年值。type为YEAR_MONTH时返回年与月份。type为DAY_MINUTE时,返回日、小时和分钟值。
11.计算日期和时间的函数
mysql> SELECT DATE_ADD('2017-02-06 19:58:35',INTERVAL 1 SECOND) AS col1, -> ADDDATE('2017-02-06 19:58:35',INTERVAL 1 SECOND) AS col2, -> DATE_ADD('2017-02-06 19:58:35',INTERVAL '1:1' MINUTE_SECOND) AS col3;+---------------------+---------------------+---------------------+| col1 | col2 | col3 |+---------------------+---------------------+---------------------+| 2017-02-06 19:58:36 | 2017-02-06 19:58:36 | 2017-02-06 19:59:36 |+---------------------+---------------------+---------------------+1 row in set (0.00 sec)
总结:
1.DATE_ADD()和ADDDATE()作用相同,执行日期相加操作。
mysql> SELECT DATE_SUB('2017-02-06 19:58:35',INTERVAL 1 SECOND) AS col1, -> SUBDATE('2017-02-06 19:58:35',INTERVAL 1 SECOND) AS col2, -> DATE_SUB('2017-02-06 19:58:35',INTERVAL '0 0:1:1' DAY_SECOND) AS col3;+---------------------+---------------------+---------------------+| col1 | col2 | col3 |+---------------------+---------------------+---------------------+| 2017-02-06 19:58:34 | 2017-02-06 19:58:34 | 2017-02-06 19:57:34 |+---------------------+---------------------+---------------------+1 row in set (0.00 sec)
总结:
1.DATE_SUB()SUBDATE()作用相同,执行日期相减操作。
2.DATE_ADD和DATE_SUB在指定修改的时间段时,也可以为负值,负值代表相减。
mysql> SELECT ADDTIME('2000-12-31 23:59:59','1:1:1'),ADDTIME('02:02:02','02:00:00');+----------------------------------------+--------------------------------+| ADDTIME('2000-12-31 23:59:59','1:1:1') | ADDTIME('02:02:02','02:00:00') |+----------------------------------------+--------------------------------+| 2001-01-01 01:01:00 | 04:02:02 |+----------------------------------------+--------------------------------+1 row in set (0.00 sec)mysql> SELECT SUBTIME('2000-12-31 23:59:59','1:1:1'),SUBTIME('02:02:02','02:00:00');+----------------------------------------+--------------------------------+| SUBTIME('2000-12-31 23:59:59','1:1:1') | SUBTIME('02:02:02','02:00:00') |+----------------------------------------+--------------------------------+| 2000-12-31 22:58:58 | 00:02:02 |+----------------------------------------+--------------------------------+1 row in set (0.00 sec)
总结: 使用ADDTIME()和SUBTIME()对时间进行加减。
mysql> SELECT DATEDIFF('2017-02-06 19:58:35','2017-02-05') AS col1, -> DATEDIFF('2017-02-06 19:58:35','2017-03-05') AS col2;+------+------+| col1 | col2 |+------+------+| 1 | -27 |+------+------+1 row in set (0.00 sec)
总结:DATEDIFF()函数计算两个日期之间的间隔天数。
12.将日期和时间格式化的函数
mysql> SELECT DATE_FORMAT('2017-02-06 19:58:35','%W %M %Y') AS col1, -> DATE_FORMAT('2017-02-06 19:58:35','%D %y %a %d %m %b %j') AS col2;+----------------------+--------------------------+| col1 | col2 |+----------------------+--------------------------+| Monday February 2017 | 6th 17 Mon 06 02 Feb 037 |+----------------------+--------------------------+1 row in set (0.00 sec)mysql> SELECT DATE_FORMAT('2017-02-06 19:58:35','%H:%i:%s') AS col1, -> DATE_FORMAT('2017-02-06 19:58:35','%X %V') AS col2;+----------+---------+| col1 | col2 |+----------+---------+| 19:58:35 | 2017 06 |+----------+---------+1 row in set (0.00 sec)mysql> SELECT TIME_FORMAT('19:58:35','%H %k %h %I %l');+------------------------------------------+| TIME_FORMAT('19:58:35','%H %k %h %I %l') |+------------------------------------------+| 19 19 07 07 7 |+------------------------------------------+1 row in set (0.00 sec)
总结:1.DATE_FORMAT(date,format)根据format指定的格式显示date值。
DATE_FORMAT 时间日期格式:
mysql> SELECT GET_FORMAT(DATE,'EUR'),GET_FORMAT(DATE,'USA');+------------------------+------------------------+| GET_FORMAT(DATE,'EUR') | GET_FORMAT(DATE,'USA') |+------------------------+------------------------+| %d.%m.%Y | %m.%d.%Y |+------------------------+------------------------+1 row in set (0.00 sec)
总结:GET_FORMAT()函数显示不同格式化类型下的格式字符串。
GET_FORMAT 返回的格式字符串:
在DATE_FORMAT()函数中,使用GET_FORMAT()函数返回的显示格式字符串来显示指定日期
mysql> SELECT DATE_FORMAT('2017-02-06 19:58:35',GET_FORMAT(DATE,'USA'));+-----------------------------------------------------------+| DATE_FORMAT('2017-02-06 19:58:35',GET_FORMAT(DATE,'USA')) |+-----------------------------------------------------------+| 02.06.2017 |+-----------------------------------------------------------+1 row in set (0.00 sec)
- MySQL笔记五之 日期和时间函数
- MySQL函数之日期和时间函数
- MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数
- MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数
- MySQL(基础篇)之MySQL(时间和日期函数)
- Mysql日期和时间函数
- Mysql日期和时间函数
- Mysql日期和时间函数
- Mysql日期和时间函数
- MySQL:日期和时间函数
- MySql日期和时间函数
- Mysql日期和时间函数
- Mysql日期和时间函数
- Mysql日期和时间函数
- Mysql日期和时间函数
- mysql时间和日期函数
- Mysql日期和时间函数
- Mysql日期和时间函数
- golang与java间的json-rpc跨语言调用
- 1路AD数码管显示
- 解决Tomcat: Can't load IA 32-bit .dll on a AMD 64-bit platform问题
- CSS3属性之:border-radius
- 设计模式之适配器模式
- MySQL笔记五之 日期和时间函数
- iOS好用的文章链接
- java的一些基础知识总结
- Android 全屏无标题栏的三种实现方法
- 2016回顾与总结
- Android 四大基本组件之ContentProvider(查询单个)
- 牛人博客
- linux /etc/profile 配置错误导致 command not fund
- 登录名、用户、角色、权限