MySQL之日期时候处置惩罚函数【MySQL教程】,MySQL,函数,日期
作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:33评论:0
导读:本文给人人分享的是MySQL之日期时候处置惩罚函数,异常的细致,也很有用,异常合适初学者,有须要的小伙伴参考下。以下基础包括MySQL一切日期时候函数--MySQL...
本文给人人分享的是MySQL之日期时候处置惩罚函数 ,异常的细致,也很有用,异常合适初学者,有须要的小伙伴参考下。
以下基础包括MySQL一切日期时候函数
-- MySQL日期时候处置惩罚函数 -- 当前日期:2017-05-12(倏忽发明本日512,是否是会拉防空警报) SELECT NOW() FROM DUAL;-- 当前日期时候:2017-05-12 11:41:47 -- 在MySQL里也存在和Oracle里相似的dual假造表:官方声明地道是为了满足select ... from...这一习气题目,mysql会疏忽对该表的援用。 -- 那末MySQL中就不必DUAL了吧。 SELECT NOW();-- 当前日期时候:2017-05-12 11:41:55 -- 除了 now() 函数能取得当前的日期时候外,MySQL 中另有下面的函数: SELECT CURRENT_TIMESTAMP();-- 2017-05-15 10:19:31 SELECT CURRENT_TIMESTAMP;-- 2017-05-15 10:19:51 SELECT LOCALTIME();-- 2017-05-15 10:20:00 SELECT LOCALTIME;-- 2017-05-15 10:20:10 SELECT LOCALTIMESTAMP();-- 2017-05-15 10:20:21(v4.0.6) SELECT LOCALTIMESTAMP;-- 2017-05-15 10:20:30(v4.0.6) -- 这些日期时候函数,都等同于 now()。鉴于 now() 函数简短易记,发起老是运用 now()来替换上面列出的函数。 SELECT SYSDATE();-- 当前日期时候:2017-05-12 11:42:03 -- sysdate() 日期时候函数跟 now() 相似, -- 差别之处在于:now() 在实行最先时价就获得了;sysdate() 在函数实行时动态获得值。 -- 看下面的例子就邃晓了: SELECT NOW(), SLEEP(3), NOW(); SELECT SYSDATE(), SLEEP(3), SYSDATE(); SELECT CURDATE();-- 当前日期:2017-05-12 SELECT CURRENT_DATE();-- 当前日期:等同于 CURDATE() SELECT CURRENT_DATE;-- 当前日期:等同于 CURDATE() SELECT CURTIME();-- 当前时候:11:42:47 SELECT CURRENT_TIME();-- 当前时候:等同于 CURTIME() SELECT CURRENT_TIME;-- 当前时候:等同于 CURTIME() -- 取得当前 UTC 日期时候函数 SELECT UTC_TIMESTAMP(), UTC_DATE(), UTC_TIME() -- MySQL 取得当前时候戳函数:current_timestamp, current_timestamp() SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP();-- 2017-05-15 10:32:21 | 2017-05-15 10:32:21 -- MySQL 日期时候 Extract(拔取) 函数 SET @dt = '2017-05-15 10:37:14.123456'; SELECT DATE(@dt);-- 猎取日期:2017-05-15 SELECT TIME('2017-05-15 10:37:14.123456');-- 猎取时候:10:37:14.123456 SELECT YEAR('2017-05-15 10:37:14.123456');-- 猎取年份 SELECT MONTH('2017-05-15 10:37:14.123456');-- 猎取月份 SELECT DAY('2017-05-15 10:37:14.123456');-- 猎取日 SELECT HOUR('2017-05-15 10:37:14.123456');-- 猎取时 SELECT MINUTE('2017-05-15 10:37:14.123456');-- 猎取分 SELECT SECOND('2017-05-15 10:37:14.123456');-- 猎取秒 SELECT MICROSECOND('2017-05-15 10:37:14.123456');-- 猎取毫秒 SELECT QUARTER('2017-05-15 10:37:14.123456');-- 猎取季度 SELECT WEEK('2017-05-15 10:37:14.123456');-- 20 (猎取周) SELECT WEEK('2017-05-15 10:37:14.123456', 7);-- ****** 测试此函数在MySQL5.6下无效 SELECT WEEKOFYEAR('2017-05-15 10:37:14.123456');-- 同week() SELECT DAYOFYEAR('2017-05-15 10:37:14.123456');-- 135 (日期在年度中第几天) SELECT DAYOFMONTH('2017-05-15 10:37:14.123456');-- 5 (日期在月度中第几天) SELECT DAYOFWEEK('2017-05-15 10:37:14.123456');-- 2 (日期在周中第几天;周日为第一天) SELECT WEEKDAY('2017-05-15 10:37:14.123456');-- 0 SELECT WEEKDAY('2017-05-21 10:37:14.123456');-- 6(与dayofweek()都示意日期在周的第几天,只是参考规范差别,weekday()周一为第0天,周日为第6天) SELECT YEARWEEK('2017-05-15 10:37:14.123456');-- 201720(年和周) SELECT EXTRACT(YEAR FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(MONTH FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(DAY FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(HOUR FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(MINUTE FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(SECOND FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(MICROSECOND FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(QUARTER FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(WEEK FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(YEAR_MONTH FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(DAY_HOUR FROM '2017-05-15 10:37:14.123456'); SELECT EXTRACT(DAY_MINUTE FROM '2017-05-15 10:37:14.123456');-- 151037(日时分) SELECT EXTRACT(DAY_SECOND FROM '2017-05-15 10:37:14.123456');-- 15103714(日时分秒) SELECT EXTRACT(DAY_MICROSECOND FROM '2017-05-15 10:37:14.123456');-- 15103714123456(日时分秒毫秒) SELECT EXTRACT(HOUR_MINUTE FROM '2017-05-15 10:37:14.123456');-- 1037(时分) SELECT EXTRACT(HOUR_SECOND FROM '2017-05-15 10:37:14.123456');-- 103714(时分秒) SELECT EXTRACT(HOUR_MICROSECOND FROM '2017-05-15 10:37:14.123456');-- 103714123456(日时分秒毫秒) SELECT EXTRACT(MINUTE_SECOND FROM '2017-05-15 10:37:14.123456');-- 3714(分秒) SELECT EXTRACT(MINUTE_MICROSECOND FROM '2017-05-15 10:37:14.123456');-- 3714123456(分秒毫秒) SELECT EXTRACT(SECOND_MICROSECOND FROM '2017-05-15 10:37:14.123456');-- 14123456(秒毫秒) -- MySQL Extract() 函数除了没有date(),time() 的功用外,其他功用一应具全。 -- 而且还具有拔取‘day_microsecond' 等功用。 -- 注重这里不是只拔取 day 和 microsecond,而是从日期的 day 部份一直拔取到 microsecond 部份。 SELECT DAYNAME('2017-05-15 10:37:14.123456');-- Monday(返回英文礼拜) SELECT MONTHNAME('2017-05-15 10:37:14.123456');-- May(返回英文月份) SELECT LAST_DAY('2016-02-01');-- 2016-02-29 (返回月份中末了一天) SELECT LAST_DAY('2016-05-01');-- 2016-05-31 -- DATE_ADD(date,INTERVAL expr type) 从日期加上指定的时候距离 -- type参数可参考:http://www.w3school.com.cn/sql/func_date_sub.asp SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 YEAR);-- 示意:2018-05-15 10:37:14.123456 SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 QUARTER);-- 示意:2017-08-15 10:37:14.123456 SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 MONTH);-- 示意:2017-06-15 10:37:14.123456 SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 WEEK);-- 示意:2017-05-22 10:37:14.123456 SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 DAY);-- 示意:2017-05-16 10:37:14.123456 SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 HOUR);-- 示意:2017-05-15 11:37:14.123456 SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 MINUTE);-- 示意:2017-05-15 10:38:14.123456 SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 SECOND);-- 示意:2017-05-15 10:37:15.123456 SELECT DATE_ADD('2017-05-15 10:37:14.123456',INTERVAL 1 MICROSECOND);-- 示意:2017-05-15 10:37:14.123457 -- DATE_SUB(date,INTERVAL expr type) 从日期减去指定的时候距离 SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 YEAR);-- 示意:2016-05-15 10:37:14.123456 SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 QUARTER);-- 示意:2017-02-15 10:37:14.123456 SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 MONTH);-- 示意:2017-04-15 10:37:14.123456 SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 WEEK);-- 示意:2017-05-08 10:37:14.123456 SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 DAY);-- 示意:2017-05-14 10:37:14.123456 SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 HOUR);-- 示意:2017-05-15 09:37:14.123456 SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 MINUTE);-- 示意:2017-05-15 10:36:14.123456 SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 SECOND);-- 示意:2017-05-15 10:37:13.123456 SELECT DATE_SUB('2017-05-15 10:37:14.123456',INTERVAL 1 MICROSECOND);-- 示意:2017-05-15 10:37:14.123455 -- 经特别日期测试,DATE_SUB(date,INTERVAL expr type)可放心运用 SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY);-- 前一天:2017-05-11 SELECT DATE_SUB(CURDATE(),INTERVAL -1 DAY);-- 后一天:2017-05-13 SELECT DATE_SUB(CURDATE(),INTERVAL 1 MONTH);-- 一个月前日期:2017-04-12 SELECT DATE_SUB(CURDATE(),INTERVAL -1 MONTH);-- 一个月后日期:2017-06-12 SELECT DATE_SUB(CURDATE(),INTERVAL 1 YEAR);-- 一年前日期:2016-05-12 SELECT DATE_SUB(CURDATE(),INTERVAL -1 YEAR);-- 一年后日期:20178-06-12 -- MySQL date_sub() 日期时候函数 和 date_add() 用法一致,而且可以用INTERNAL -1 xxx的情势交换运用; -- 别的,MySQL 中另有两个函数 subdate(), subtime(),发起,用 date_sub() 来替换。 -- MySQL 另类日期函数:period_add(P,N), period_diff(P1,P2) -- 函数参数“P” 的花样为“YYYYMM” 或许 “YYMM”,第二个参数“N” 示意增添或减去 N month(月)。 -- MySQL period_add(P,N):日期加/减去N月。 SELECT PERIOD_ADD(201705,2), PERIOD_ADD(201705,-2);-- 201707 20170503 -- period_diff(P1,P2):日期 P1-P2,返回 N 个月。 SELECT PERIOD_DIFF(201706, 201703);-- -- datediff(date1,date2):两个日期相减 date1 - date2,返回天数 SELECT DATEDIFF('2017-06-05','2017-05-29');-- 7 -- TIMEDIFF(time1,time2):两个日期相减 time1 - time2,返回 TIME 差值 SELECT TIMEDIFF('2017-06-05 19:28:37', '2017-06-05 17:00:00');-- 02:28:37 -- MySQL日期转换函数 SELECT TIME_TO_SEC('01:00:05'); -- 3605 SELECT SEC_TO_TIME(3605);-- 01:00:05 -- MySQL (日期、天数)转换函数:to_days(date), from_days(days) SELECT TO_DAYS('0000-00-00'); -- NULL SELECT TO_DAYS('2017-06-05'); -- 736850 SELECT FROM_DAYS(0); -- '0000-00-00' SELECT FROM_DAYS(736850); -- '2017-06-05' -- MySQL Str to Date (字符串转换为日期)函数:str_to_date(str, format) SELECT STR_TO_DATE('06.05.2017 19:40:30', '%m.%d.%Y %H:%i:%s');-- 2017-06-05 19:40:30 SELECT STR_TO_DATE('06/05/2017', '%m/%d/%Y'); -- 2017-06-05 SELECT STR_TO_DATE('2017/12/3','%Y/%m/%d') -- 2017-12-03 SELECT STR_TO_DATE('20:09:30', '%h:%i:%s') -- NULL(凌驾12时的小时用小写h,获得的效果为NULL) -- 日期时候花样化 SELECT DATE_FORMAT('2017-05-12 17:03:51', '%Y年%m月%d日 %H时%i分%s秒');-- 2017年05月12日 17时03分51秒(详细须要什么花样的数据依据实际情况来;小写h为12小时制;) SELECT TIME_FORMAT('2017-05-12 17:03:51', '%Y年%m月%d日 %H时%i分%s秒');-- 0000年00月00日 17时03分51秒(time_format()只能用于时候的花样化) -- STR_TO_DATE()和DATE_FORMATE()为互逆操纵 -- MySQL 取得国度区域时候花样函数:get_format() -- MySQL get_format() 语法:get_format(date|time|datetime, 'eur'|'usa'|'jis'|'iso'|'internal' -- MySQL get_format() 用法的悉数示例: SELECT GET_FORMAT(DATE,'usa'); -- '%m.%d.%Y' SELECT GET_FORMAT(DATE,'jis'); -- '%Y-%m-%d' SELECT GET_FORMAT(DATE,'iso'); -- '%Y-%m-%d' SELECT GET_FORMAT(DATE,'eur'); -- '%d.%m.%Y' SELECT GET_FORMAT(DATE,'internal'); -- '%Y%m%d' SELECT GET_FORMAT(DATETIME,'usa'); -- '%Y-%m-%d %H.%i.%s' SELECT GET_FORMAT(DATETIME,'jis'); -- '%Y-%m-%d %H:%i:%s' SELECT GET_FORMAT(DATETIME,'iso'); -- '%Y-%m-%d %H:%i:%s' SELECT GET_FORMAT(DATETIME,'eur'); -- '%Y-%m-%d %H.%i.%s' SELECT GET_FORMAT(DATETIME,'internal'); -- '%Y%m%d%H%i%s' SELECT GET_FORMAT(TIME,'usa'); -- '%h:%i:%s %p' SELECT GET_FORMAT(TIME,'jis'); -- '%H:%i:%s' SELECT GET_FORMAT(TIME,'iso'); -- '%H:%i:%s' SELECT GET_FORMAT(TIME,'eur'); -- '%H.%i.%s' SELECT GET_FORMAT(TIME,'internal'); -- '%H%i%s' -- MySQL 拼集日期、时候函数:makdedate(year,dayofyear), maketime(hour,minute,second) SELECT MAKEDATE(2017,31); -- '2017-01-31' SELECT MAKEDATE(2017,32); -- '2017-02-01' SELECT MAKETIME(19,52,35); -- '19:52:35' -- MySQL 时区(timezone)转换函数:convert_tz(dt,from_tz,to_tz) SELECT CONVERT_TZ('2017-06-05 19:54:12', '+08:00', '+00:00'); -- 2017-06-05 11:54:12 -- MySQL (Unix 时候戳、日期)转换函数 -- unix_timestamp(), unix_timestamp(date), from_unixtime(unix_timestamp), from_unixtime(unix_timestamp,format) -- 将详细时候时候转为timestamp SELECT UNIX_TIMESTAMP();-- 当前时候的时候戳:1494815779 SELECT UNIX_TIMESTAMP('2017-05-15');-- 指定日期的时候戳:1494777600 SELECT UNIX_TIMESTAMP('2017-05-15 10:37:14');-- 指定日期时候的时候戳:1494815834 -- 将时候戳转为详细时候 SELECT FROM_UNIXTIME(1494815834);-- 2017-05-15 10:37:14 SELECT FROM_UNIXTIME(1494815834, '%Y年%m月%d日 %h时%分:%s秒');-- 猎取时候戳对应的花样化日期时候 -- MySQL 时候戳(timestamp)转换、增、减函数 SELECT TIMESTAMP('2017-05-15');-- 2017-05-15 00:00:00 SELECT TIMESTAMP('2017-05-15 08:12:25', '01:01:01');-- 2017-05-15 09:13:26 SELECT DATE_ADD('2017-05-15 08:12:25', INTERVAL 1 DAY);-- 2017-05-16 08:12:25 SELECT TIMESTAMPADD(DAY, 1, '2017-05-15 08:12:25');-- 2017-05-16 08:12:25; MySQL timestampadd() 函数相似于 date_add()。 SELECT TIMESTAMPDIFF(YEAR, '2017-06-01', '2016-05-15');-- -1 SELECT TIMESTAMPDIFF(MONTH, '2017-06-01', '2016-06-15');-- -11 SELECT TIMESTAMPDIFF(DAY, '2017-06-01', '2016-06-15');-- -351 SELECT TIMESTAMPDIFF(HOUR, '2017-06-01 08:12:25', '2016-06-15 00:00:00');-- -8432 SELECT TIMESTAMPDIFF(MINUTE, '2017-06-01 08:12:25', '2016-06-15 00:00:00');-- -505932 SELECT TIMESTAMPDIFF(SECOND, '2017-06-01 08:12:25', '2016-06-15 00:00:00');-- -30355945
以上就是MySQL之日期时候处置惩罚函数 的细致内容,更多请关注ki4网别的相干文章!
相关推荐
- MySQL如何使用授权命令grant_MySQL教程,MySQL,grant
- MySQL 连接查询超级详解_MySQL教程,MySQL,连接查询
- 收好100个最常用的PHP函数_php教程,PHP,函数
- PHP如何结合MySQL进行千万级数据处理_php教程,PHP,MySQL,数据处理
- MySQL中explain用法和结果分析(详解)_MySQL教程,MySQL,explain
- 解决MySQL会出现中文乱码问题的方法_MySQL教程,MySQL,中文乱码
- 了解MySQ(Oracle)模糊查询 使用instr()替代like提升效率_MySQL教程,MySQL,instr(),like
- MySQL单表容量有多少_MySQL教程,MySQL
- 常用MySQL函数有哪些?_MySQL教程,MySQL,常用函数
- mysql日期和时间函数有哪些?_MySQL教程,mysql,日期,时间函数
你 发表评论:
欢迎- MySQL教程排行
-
- 1Mysql如何挂盘_MySQL教程,Mysql
- 2mysql中key 、primary key 、unique key 与index区别详解_MySQL教程,mysql
- 3关于一道mysql查询面试题的思考解决过程_MySQL教程,mysql
- 4关于linux下mysql去除严格模式_MySQL教程,linux
- 5分离数据库和附加数据库的区别_MySQL教程,数据库
- 6如何修改mysql的默认时区_MySQL教程,mysql,时区
- 7利用mysql生成唯一序号_MySQL教程,mysql
- 8看看MySQL 5.6, 5.7, 8.0的新特性!_MySQL教程,MySQL
- 9mysql数据库如何创建数据表_MySQL教程,mysql,数据表
- 最新文章
- 广而告之