Mysql常用函数 -- 日期函数
程序员文章站
2022-05-29 22:45:24
...
# 日期函数
SELECT NOW(); -- 年月日时分秒
SELECT SYSDATE() ; -- 年月日时分秒
SELECT CURDATE(); -- 年月日
SELECT CURTIME(); -- 时分秒
SELECT YEAR(NOW()); -- 年
SELECT MONTH(NOW()); -- 月
SELECT DAY(NOW()); -- 日
SELECT HOUR(NOW()); -- 时
SELECT MINUTE(NOW()); -- 分
SELECT SECOND(NOW()); -- 秒
SELECT NOW() + 0;
SELECT ROUND(NOW() + 0);
SELECT CURDATE() + 0;
SELECT CURTIME() + 0;
SELECT ROUND(CURTIME() + 0);
-- DATE(expr)
-- 提取日期或时间日期表达式expr中的日期部分。
SELECT DATE(NOW()); -- 返回年月日
SELECT DATE('2018-03-22 01:02:03'); -- 2018-03-22
SELECT DATE('2018/03/22 01:02:03'); -- 2018-03-22
SELECT DATE('03/22/2018 01:02:03'); -- null
-- DATE_FORMAT(date,format)
-- 根据format 字符串安排date 值的格式。
%a 工作日的缩写名称 (Sun..Sat)
%b 月份的缩写名称 (Jan..Dec)
%c 月份,数字形式(0..12)
%D 带有英语后缀的该月日期 (0th, 1st, 2nd, 3rd, ...)
%d 该月日期, 数字形式 (00..31)
%e 该月日期, 数字形式(0..31)
%f 微秒 (000000..999999)
%H 小时(00..23)
%h 小时(01..12)
%I 小时 (01..12)
%i 分钟,数字形式 (00..59)
%j 一年中的天数 (001..366)
%k 小时 (0..23)
%l 小时 (1..12)
%M 月份名称 (January..December)
%m 月份, 数字形式 (00..12)
%p 上午(AM)或下午( PM)
%r 时间 , 12小时制 (小时hh:分钟mm:秒数ss 后加 AM或PM)
%S 秒 (00..59)
%s 秒 (00..59)
%T 时间 , 24小时制 (小时hh:分钟mm:秒数ss)
%U 周 (00..53), 其中周日为每周的第一天
%u 周 (00..53), 其中周一为每周的第一天
%V 周 (01..53), 其中周日为每周的第一天 ; 和 %X同时使用
%v 周 (01..53), 其中周一为每周的第一天 ; 和 %x同时使用
%W 工作日名称 (周日..周六)
%w 一周中的每日 (0=周日..6=周六)
%X 该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用
%X 该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用
%Y 年份, 数字形式,4位数
%Y 年份, 数字形式 (2位数)
%% ‘%’文字字符
SELECT DATE_FORMAT('2018-10-04 21:13:00', '%d %m %Y'); -- 04 10 2018
-- DAYOFMONTH(date)
-- 返回date 对应的该月日期,范围是从 1到31。
SELECT DAYOFMONTH('2018-02-03'); -- 3
-- DAYOFWEEK(date)
-- 返回date (1 = 周日, 2 = 周一, ..., 7 = 周六)对应的工作日索引。这些索引值符合 ODBC标准。
SELECT DAYOFWEEK('2018-02-03'); -- 7
-- DAYOFYEAR(date)
-- 返回date 对应的一年中的天数,范围是从 1到366。
SELECT DAYOFYEAR('2018-02-03'); -- 34
-- 字符串 日期 转换 只针对于格式 ,不判断是否合法
-- 字符串转时间 只会检查格式是否匹配
SELECT STR_TO_DATE('00-00-2018', '%m-%d-%Y');
SELECT STR_TO_DATE('02-31-2018', '%m-%d-%Y'); -- 2018-02-31
SELECT STR_TO_DATE('02-31-2018', '%m/%d/%Y'); -- 格式不匹配 返回 null
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日');
-- 时间不合法 时间转字符串 会检查是否合法
SELECT DATE_FORMAT('2018-02-31','%Y年%m月%d日'); -- null
SELECT DATE_FORMAT('2018-02-21','%Y年%m月%d日'); -- 2018-02-21
SELECT DATE_FORMAT('2018/02/21','%Y年%m月%d日'); -- 2018-02-21
SELECT DATE_FORMAT('2018年02月21','%Y年%m月%d日'); -- 时间格式不对 返回null
-- 如何 将 字符串时间 2018年2月3号 转成时间字符串02月03日2018年
SELECT STR_TO_DATE('2018年2月3号','%Y年%m月%d号'); -- 2018-02-03
SELECT DATE_FORMAT('2018-02-03','%m月%d日%Y年'); -- 02月03日2018年
SELECT DATE_FORMAT(STR_TO_DATE('2018年2月3号','%Y年%m月%d号'),'%m月%d日%Y年')AS res;
-- TIME(expr)
-- 提取一个时间或日期时间表达式的时间部分,并将其以字符串形式返回。
SELECT TIME('2018-02-22 01:02:03'); -- 01:02:03
上一篇: 市场调查
下一篇: npm更换淘宝镜像源以及cnpm