MySQL 常用函数 - 日期函数

当前日期

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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值