【DataBase】MySQL 09 SQL函数 单行函数其三 日期函数

日期函数

 

日期&时间函数

NOW 当前日期时间、

CURDATE 当前日期、

CURTIME 当前时间

-- NOW();返回系统日期+时间
SELECT NOW();

-- CURDATE(); 只返回当前系统日期
SELECT CURDATE();

-- CURTIME(); 只返回当前系统时间
SELECT CURTIME();

 

细分单位函数:年、月、日、时、分、秒、

-- 获取指定的时间单位 年、月、日、时、分、秒
SELECT 
YEAR(NOW() ),MONTH(NOW() ),DAY(NOW() ),
HOUR(NOW() ),MINUTE(NOW() ),SECOND(NOW() );

 

年和月的其他特点:

SELECT YEAR(NOW() ); -- 返回年的数值形式
SELECT YEAR("1998-09-01"); -- 可以按此字符串的个数读取年的数值
SELECT YEAR(`hiredate`) FROM `employees`; -- 或者按数据表中的字段读取

SELECT MONTH(NOW() ); -- 返回月份的数值形式
SELECT MONTHNAME(NOW() ); -- 返回月份的单词形式

 

MySQL的格式转换&字符转换

-- STR_TO_DATE(str,format) 按照参数格式解析字符串转换为指定的日期时间格式
SELECT STR_TO_DATE('13-09-2048','%d-%m-%Y');

-- DATE_FORMATE(date,format) 将日期转换指定的字符格式
SELECT DATE_FORMAT("2013/6/7","%Y年 %m月 %d日");
SELECT DATE_FORMAT(NOW(),"%Y年-%m月-%d日");

 

格式的说明

/*
%Y 四位数的年数值,%y 二位数的年数值 [2009, 09]
%m 两位数0填充的月数值,%c 不填充的月数值 [09, 9]
%d 按月算的天数值, 09
%H 24小时制,%h 12小时制
%i 分钟数值
%s 秒数值
*/

 

案例

-- 查询1992-4-3入职的员工信息
SELECT * FROM `employees` WHERE `hiredate` = '1992-4-3';

-- Java可以拼接字符串处理,交给SQL用此函数二次转换处理
SELECT * FROM `employees` WHERE `hiredate` = str_to_date('13-09-2048','%d-%m-%Y');

-- 将时间转换成参数格式的字符串,Java处理不需要再用Date对象了,String接收方便
SELECT DATE_FORMAT(NOW(),"%Y年-%m月-%d日");
SELECT DATE_FORMAT(`hiredate`,"%Y年-%m月-%d日") from `employees`;

 

posted @ 2020-04-27 10:22  emdzz  阅读(117)  评论(0编辑  收藏  举报