24 2021

mysql的常用函数整理笔记(二)

本文将MySQL的部分函数分类并汇总,以便以后用到的时候可以随时查看, MySQL函数包括日期函数。如下

1.日期函数

1.1 ADDDATE(d,n) 计算起始日期 d 加上 n 天的日期 SELECT ADDDATE("2019-09-19", INTERVAL 10 DAY); 

1.2 ADDTIME(t,n) n 是一个时间表达式,时间 t 加上时间表达式 n 加5秒: SELECT ADDTIME('2019-09-19 01:01:01', 5); SELECT ADDTIME("2020-09-19 09:30:30", "2:10:5"); 

1.3 CURDATE()     返回当前日期 SELECT CURDATE(); 

1.4 CURRENT_DATE() 返回当前日期 SELECT CURRENT_DATE();

1.5 CURRENT_TIME 返回当前时间 SELECT CURRENT_TIME();

1.6 CURRENT_TIMESTAMP() 返回当前日期和时间 SELECT CURRENT_TIMESTAMP();

1.7 CURTIME() 返回当前时间 SELECT CURTIME();

1.8 DATE() 从日期或日期时间表达式中提取日期值 SELECT DATE("2019-09-19");

1.9 DATEDIFF(d1,d2) 计算日期 d1->d2 之间相隔的天数 SELECT DATEDIFF('2021-01-01','2021-02-02')

1.10 DATE_ADD(d,INTERVAL expr type) 计算起始日期 d 加上一个时间段后的日期,

     type值可以是:

    MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND      HOUR_MICROSECOND HOUR_SECOND

    HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH

    SELECT DATE_ADD("2019-09-19", INTERVAL 10 DAY);    

    SELECT DATE_ADD("2019-09-19 09:30:30", INTERVAL 15 MINUTE);

    SELECT DATE_ADD("2019-09-19 09:30:30", INTERVAL -3 HOUR);

    SELECT DATE_ADD("2019-09-19 09:30:30", INTERVAL -3 HOUR);

1.10 DATE_FORMAT(d,f) 按表达式 f的要求显示日期 d SELECT DATE_FORMAT('2019-09-19 01:01:01','%Y-%m-%d %r');

1.11 DATE_SUB(date,INTERVAL expr type) 函数从日期减去指定的时间间隔。

     orders 表中 order_date 字段减去 2 天:SELECT id,DATE_SUB(order_date,INTERVAL 2 DAY) AS OrderPayDate FROM orders;

1.12 DAY(d) 返回日期值 d 的日期部分 SELECT DAY("2019-09-19");  

1.13 DAYNAME(d)     返回日期 d 是星期几,如 Monday,Tuesday SELECT DAYNAME('2019-09-19 01:01:01');

1.15 DAYOFMONTH(d) 计算日期 d 是本月的第几天 SELECT DAYOFMONTH('2019-09-19 01:01:01');

1.16 DAYOFWEEK(d) 日期 d 今天是星期几,1 星期日,2 星期一,以此类推 SELECT DAYOFWEEK('2019-09-19 01:01:01');

1.17 DAYOFYEAR(d) 计算日期 d 是本年的第几天 SELECT DAYOFYEAR('2019-09-19 01:01:01');

1.18 EXTRACT(type FROM d) 从日期 d 中获取指定的值,type 指定返回的值。

     type可取值为:

    MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND      HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH

     SELECT EXTRACT(MINUTE FROM '2019-09-19 01:01:01') ;

1.19 FROM_DAYS(n) 计算从 0000 年 1 月 1 日开始 n 天后的日期 SELECT FROM_DAYS(1111);

1.20 HOUR(t) 返回 t 中的小时值 SELECT HOUR('1:2:3')

1.21 LAST_DAY(d) 返回给给定日期的那一月份的最后一天 SELECT LAST_DAY("2017-06-20");

1.22 LOCALTIME() 返回当前日期和时间 SELECT LOCALTIME();

1.23 LOCALTIMESTAMP() 返回当前日期和时间 SELECT LOCALTIMESTAMP();

1.24 MAKEDATE(year, day-of-year) 基于给定参数年份 year 和所在年中的天数序号 day-of-year 返回一个日期 SELECT MAKEDATE(2017, 3);

1.25 MAKETIME(hour, minute, second) 组合时间,参数分别为小时、分钟、秒 SELECT MAKETIME(11, 35, 4);

1.26 MICROSECOND(date) 返回日期参数所对应的微秒数 SELECT MICROSECOND("2017-06-20 09:34:00.000023");

1.27 MINUTE(t)     返回 t 中的分钟值 SELECT MINUTE('01:02:03');

1.28 MONTHNAME(d) 返回日期当中的月份名称,如 November SELECT MONTHNAME('2019-09-19 01:01:01')

1.29 MONTH(d)     返回日期d中的月份值,1 到 12 SELECT MONTH('2019-09-19 01:01:01')

1.30 NOW()        返回当前日期和时间 SELECT NOW()

1.31 PERIOD_ADD(period, number) 为 年-月 组合日期添加一个时段 SELECT PERIOD_ADD(201703, 5);   

1.32 PERIOD_DIFF(period1, period2) 返回两个时段之间的月份差值 SELECT PERIOD_DIFF(201710, 201703);

1.32 QUARTER(d)   返回日期d是第几季节,返回 1 到 4 SELECT QUARTER('2019-09-19 01:01:01');

1.33 SECOND(t)   返回 t 中的秒钟值 SELECT SECOND('1:2:3');

1.34 SEC_TO_TIME(s) 将以秒为单位的时间 s 转换为时分秒的格式 SELECT SEC_TO_TIME(4320);

1.35 STR_TO_DATE(string, format_mask) 将字符串转变为日期 SELECT STR_TO_DATE("August 10 2017", "%M %d %Y");

1.36 SUBDATE(d,n) 日期 d 减去 n 天后的日期 SELECT SUBDATE('2019-09-19 01:01:01', 1);

1.37 SUBTIME(t,n) 时间 t 减去 n 秒的时间 SELECT SUBTIME('2019-09-19 01:01:01', 5);

1.38 SYSDATE() 返回当前日期和时间 SELECT SYSDATE();

1.39 TIME(expression) 提取传入表达式的时间部分 SELECT TIME("19:30:10");

1.40 TIME_FORMAT(t,f) 按表达式 f 的要求显示时间 t SELECT TIME_FORMAT('11:11:11','%r');

1.41 TIME_TO_SEC(t)     将时间 t 转换为秒 SELECT TIME_TO_SEC('1:12:00')

1.42 TIMEDIFF(time1, time2) 计算时间差值 SELECT TIMEDIFF("13:10:11", "13:10:10");

1.43 TIMESTAMP(expression, interval) 单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和 SELECT TIMESTAMP("2017-07-23",  "13:10:11");

1.44 TO_DAYS(d) 计算日期 d 距离 0000 年 1 月 1 日的天数 SELECT TO_DAYS('0001-01-01 01:01:01')

1.45 WEEK(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53 SELECT WEEK('2019-09-19 01:01:01')

1.46 WEEKDAY(d) 日期 d 是星期几,0 表示星期一,1 表示星期二 SELECT WEEKDAY("2019-09-19");

1.47 WEEKOFYEAR(d) 计算日期 d 是本年的第几个星期,范围是 0 到 53 SELECT WEEKOFYEAR('2019-09-19 01:01:01')

1.48 YEAR(d) 返回年份 SELECT YEAR("2019-09-19");

1.49 YEARWEEK(date, mode) 返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推 SELECT YEARWEEK("2019-09-19");

延伸阅读
  1. mysql的常用函数整理笔记(一)
  2. Win10安装SVN找不到无法访问网络位置