【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`;