MYSQL 最近知识总结(1)

-- 关于 mysql时间函数
-- 获取当前日期 2017-08-17
select current_date();
-- 获取当前时间20:03:07
select current_time();
-- 获取当前的日期和时间2017-08-17 20:03:24
select now();  
select sysdate() 
select current_timestamp()
-- 获取datetime的年,月,日
select year(now()); -- 年 2017 
select month(now());-- 月 08
select day(now());	-- 天 17
 -- 返回datetime 的日期部分 2017-08-17  相当于:current_date()
select date(now());
-- 在datetime加上日期或时间		           
--   day 天       hour 小时             minute  分钟   
--   second 秒    microsecond 毫秒      week 星期  
--   month  月    year 	年              quarter  季节 
select date_add(now(),interval 1 day);-- 当前datetime的后一天  2017-08-18 20:05:04
select date_add(now(),interval -1 day);-- 当前datetime的前一天 2017-08-16 2 0:05:04
select date(date_add(now(),interval -1 day));-- 当前datetime的前一天的日期
select date_add(now(),interval 1 month);-- 当前datetime的后一个月
select date_add(now(),interval 1 year); -- 当前datetime的后一个年
-- 日期时间转换函数  %Y 年    %m 月   %d 日   %H 时   %i 分   %s 秒  
-- 中间的“-” 换成别的字符也可以 不加也可以 
select date_format('2088-08-08 18:08:08', '%Y-%m-%d %H:%i:%s'); -- 2088-08-08 13:08:08
-- 如果没有年月日 结果就不是预期结果了 下边可以看到 直接把预期的时分秒转换成了年月日 
select date_format('12:02:06', '%Y-%m-%d %H:%i:%s'); -- 2012-02-06 00:00:00
-- 如果之后时分秒 建议用 time_format  专门来做时间的转换(时分秒)
select time_format('12:02:06','%H:%i:%s');
-- 上边是字符格式转换成时间  下边介绍时间转换成字符串格式 str_to_date

select str_to_date('06-08-2008', '%d-%m-%Y'); -- 2008-08-06  字符串是“-” 分割  后边表达式也要“-” 分割
select str_to_date('06*08*2008', '%d*%m*%Y'); -- 2008-08-06  字符串是“*” 分割  后边表达式也要“*” 分割
select str_to_date('08:09:10', '%h:%i:%s'); -- 08:09:10
select str_to_date('08-09-2008 08:09:30', '%d-%m-%Y %h:%i:%s'); -- 2008-08-09 08:09:30
--  这个函数不知道什么情境下会用  就是计算到现在的天数 从0000年一月一日 开始
select to_days('0000-01-01'); -- 0
select to_days('2008-08-08'); -- 733627
-- time_to_sec 这个是计算总共的秒数 从  00:00:00 开始
-- sec_to_time 把秒数转换成时间     
select time_to_sec('01:00:05'); -- 3605
select sec_to_time(3605); -- '01:00:05'
-- 还有一个很酷炫的函数 构造时间 
-- makdedate(year,dayofyear), maketime(hour,minute,second)
select makedate(2008,31); -- '2001-01-31'   2008年+31天
select makedate(2008,32); -- '2001-02-01'   2008年+32天
select maketime(12,15,30); -- '12:15:30'		时,分,秒

 -- 计算2个日期之间的 差年 天 小时  分 秒 毫秒 等
select timestampdiff(year,'2002-05-01','2001-01-01'); -- -1
select timestampdiff(day ,'2002-05-01','2001-01-01'); -- -485
select timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08 00:00:00'); -- -12
select timestampdiff(MINUTE,'2008-08-08 12:00:00','2008-08-08 00:00:00'); -- -720
select timestampdiff(microsecond ,'2008-08-08 12:00:00','2008-08-08 00:00:00'); --  43200000000

-- %Y 年    %m 月   %d 日   %H 时(大写H是24小时制  小写h是12小时制)   %i 分   %s 秒


上一篇:实测windows server 2008R2 域控迁移到 windows server 2012域控


下一篇:Oracle RESETLOGS 和 NORESETLOGS 区别说明