欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL 常用函数 - 日期函数

程序员文章站 2022-05-29 22:48:47
...

当前日期

SELECT CURDATE();
SELECT CURRENT_DATE();

返回当前时间

SELECT CURRENT_TIME();

返回当前日期和时间

SELECT CURRENT_TIMESTAMP();
SELECT LOCALTIME();
SELECT LOCALTIMESTAMP();
SELECT NOW();

返回日期时间的各个部分

返回年份

SELECT YEAR('2020-03-23');

返回天数部分

SELECT DAY('2020-09-14 22:00:15');

返回月份值

SELECT MONTH('2020-08-20 10:20:30');

返回小时值

SELECT HOUR('20:10:40');

返回分钟值

SELECT MINUTE('20:10:40');

返回秒钟值

SELECT SECOND('20:10:40');

返回日期参数所对应的微妙数

SELECT MICROSECOND('2020-08-30 10:20:30.001234');

提取传入表达式的时间部分

SELECT TIME(‘2020-10-20 20:30:40’);

提取字符串中的值

SELECT DATE('2020-10-10');
SELECT DATE('2020-10-10 10:10:10');

计算时间值

计算起始日期 d 加上 n 天的日期

SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY);
SELECT ADDDATE("2017.06.15", INTERVAL 10 DAY);

时间 t 加上 n 秒的时间

SELECT ADDTIME('2020-10-10 10:10:10',6);

两个日期的想个天数

SELECT DATEDIFF('2021-01-01','2020-09-18');

计算起始日期 d 加上一个时间段后的日期,默认是天

SELECT ADDDATE('2020-10-10 10:10:10',5);
SELECT ADDDATE('2020-10-10 10:10:10',INTERVAL 10 MINUTE);

从日期减去指定的时间间隔

SELECT DATE_SUB('2020-10-10 10:10:10',INTERVAL 2 DAY);

日期减去 1 天后的日期

SELECT SUBDATE('2020-01-20 10:10:30',1);

时间减去 5 秒后的时间

SELECT SUBTIME('2020-01-20 10:10:30',5);

计算时间差值

SELECT TIMEDIFF('20:20:50','20:20:20');

按表达式的要求显示日期

SELECT DATE_FORMAT('2020-10-10 10:10:10','%Y-%m-%d %r');
SELECT DATE_FORMAT('2020-10-10 10:10:10','%Y年%m月%d日 %r');

将字符串转变为日期

SELECT STR_TO_DATE("August 10 2017", "%M %d %Y");

返回星期几:Friday

SELECT DAYNAME('2020-09-18');

返回在本月的第几天

SELECT DAYOFMONTH('2020-09-30');

日期 d 今天是星期几,1 星期日,2 星期一,以此类推

SELECT DAYOFWEEK('2020-9-18');

返回本年的第几天

SELECT DAYOFYEAR('2020-09-18');

转换时间

将时间转为时分秒

SELECT SEC_TO_TIME(4000);

将时分秒转为时间

SELECT TIME_TO_SEC('05:30:40');

/**
从日期 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 ‘2020-11-12 13:14:15’);

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

/** 返回当前月的最后一天 **/
SELECT LAST_DAY(‘2018-03-10’);

/** 组合时间 **/
SELECT MAKETIME(10,20,30);

/** 返回日期当中的月份名称,如:October **/
SELECT MONTHNAME(‘2020-10-30 10:30:40’);

/** 为 年-月 组合日期添加一个时段 /
SELECT PERIOD_ADD(202004,4);
/
返回两个时段的月份差值 **/
SELECT PERIOD_DIFF(202004,201908);

/** 返回是第几个季节,返回 1-4 **/
SELECT QUARTER(‘2020-06-08’);

/** 按照表达式要求显示时间 **/
SELECT TIME_FORMAT(‘10:20:30’,’%r’);

/** 单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和 **/
SELECT TIMESTAMP(‘2020-10-09’,‘18:30:23’);

/** 计算日期 d 距离 0000 年 1 月 1 日的天数 **/
SELECT TO_DAYS(‘2020-10-23 20:12:30’);

/** 计算时间是本年的第几个星期 **/
SELECT WEEK(‘2020-09-18 10:23:30’);
SELECT WEEKOFYEAR(‘2020-09-18 10:23:32’);

/** 日期 d 是星期几,0 表示星期一,1 表示星期二 **/
SELECT WEEKDAY(‘2020-09-18’);

/** 返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推 **/
SELECT YEARWEEK(‘2020-09-18’,0);

/**************************************************** 高级函数 ****************************************************/

/** 返回2进制编码 **/
SELECT BIN(3);

/** 将字符串转换为二进制字符串 **/
SELECT BINARY ‘Hello’;

/**

CASE 表示函数开始,END 表示函数结束。
如果 1 > 0 成立,则返回 ‘1 比 0 大’, 如果 2 > 0 成立,则返回 2 比 0 大,
当全部不成立则返回 3 比 0 大,而当有一个成立之后,后面的就不执行了。

**/
SELECT case
when 1 > 0
then ‘1 比 0 大’
when 2 > 0
then ‘2 比 0 大’
ELSE ‘3 比 0 大’
END;

/** 字符串日期改成日期 **/
SELECT CAST(‘2020-10-18’ AS DATE);

/** 返回参数中的第一个非空表达式(从左往右) **/
SELECT COALESCE(NULL,NULL,‘我非空’,NULL,NULL);

/** 返回数据库连接数 **/
SELECT CONNECTION_ID();

/** 返回十进制的 4 转为二进制的结果 **/
SELECT CONV(4,10,2);

/** 函数将字符串 s 的字符集变成 cs **/
SELECT CHARSET(‘ABC’);
SELECT CHARSET(CONVERT(‘ABC’ USING GBK));

/** 返回当前用户 **/
SELECT CURRENT_USER();

/** 返回当前数据库名 **/
SELECT DATABASE();

/** 如果 -1>0 正确,返回正确,否则错误**/
SELECT if(-1>0,‘正确’,‘错误’);

/** 第一个不为null,返回第一个参数,否则返回第二个值 **/
SELECT IFNULL(NULL,‘第一个参数为null’);

/** 为 null 返回 1,不为 null返回 0 **/
SELECT ISNULL(‘a’);
SELECT ISNULL(NULL);

/** 返回最近生成的 AUTO_INCREMENT 值 **/
SELECT LAST_INSERT_ID();

/** 比较两个字符串,相等返回 null,不等返回第一个 **/
SELECT NULLIF(20,20);
SELECT NULLIF(12,20);

/** 返回当前用户 **/
SELECT SESSION_USER();
SELECT SYSTEM_USER();
SELECT USER();

/** 返回数据库版本号 **/
SELECT VERSION();

相关标签: 数据库 mysql