日期函数
日期&时间函数
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`;