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

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

相关标签: mysql 日期函数