MySQL Review 01-Date and Process Control

1. Date functions

Get the current year, month, day

// 下一行的输出:2020-09-14 10:49:42
SELECT NOW()
SELECT YEAR(NOW())
SELECT MONTH(NOW())
SELECT DAY(NOW())
// 2020-09-14
SELECT CURDATE()
SELECT DATE(NOW())

Date string conversion

// 09~14/2020
SELECT date_format(NOW(), '%m~%d/%Y');
// 09/14/2020 10:30:20
SELECT date_format(NOW(), '%m/%d/%Y %h:%i:%s');
// 08/09/2019 12:00:00 ---- 08/09/2019 01:12:00
// 转换日期为任意格式字符串
SELECT date_format('2019/8/9', '%m/%d/%Y %h:%i:%s')
UNION ALL
SELECT date_format('2019-8-09', '%m/%d/%Y %h:%i:%s')
UNION ALL
SELECT date_format('2019-08-9', '%m/%d/%Y %h:%i:%s')
UNION ALL
SELECT date_format('2019-08-09', '%m/%d/%Y %h:%i:%s')
UNION ALL
SELECT date_format('2019-8-09 13:12', '%m/%d/%Y %h:%i:%s');
// 2020-09-14
SELECT CURDATE()
// 2020-05-14
// 转换字符串为固定格式日期
SELECT  STR_TO_DATE('20200514','%Y%m%d')
UNION ALL
SELECT STR_TO_DATE('09/01/2020','%m/%d/%Y')
UNION ALL
SELECT STR_TO_DATE('2020-5-9','%Y-%c-%e')
UNION ALL
SELECT STR_TO_DATE('2020-05-9','%Y-%m-%e')

date_format
str_to_date

Date difference

// -1458
// 第一个参数 减去 第二个参数
SELECT DATEDIFF('2014-9-8','2018-9-5')
UNION ALL
SELECT DATEDIFF('2014/9/8','2018-9-5')
UNION ALL
SELECT DATEDIFF('2014/09/08','2018-9-5')
// 英文形式返回月
SELECT MONTHNAME(NOW())
UNION ALL
SELECT MONTHNAME(CURDATE())
UNION ALL
SELECT MONTHNAME("2015-6-6")
UNION ALL
SELECT MONTHNAME('2015/4/08');
// 其它
// MONDAY
DAYNAME(NOW())

2. Flow control statement

// 大于2019/5/9
SELECT IF(DATEDIFF(NOW(),'2019/05/9')>0, '大于2019/5/9','小于2019/5/9')
// say **
SELECT
CASE 'fk'
WHEN 'hello' THEN 'say hello'
WHEN 'fk' THEN 'say **'
ELSE 'say nothing.'
END;
// say **
SELECT
CASE
WHEN 1>2 THEN 'say hello'
WHEN 2>1 THEN 'say **'
ELSE 'say nothing.'
END;

Guess you like

Origin blog.csdn.net/weixin_37627774/article/details/108574052