Mysql常用函数 -- 日期函数

# 日期函数
 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

猜你喜欢

转载自blog.csdn.net/sunrainamazing/article/details/80749599
今日推荐