MySQL--时间与日期的处理、获取当地时间、时间与时间戳转换
更多关于数据库知识请加关注哟~~。若需联系和想安装MySQL请加博主:
QQ:3327908431
微信:ZDSL1542334210
前言:时间的处理、操作、获取是非常重要的,无论是在工作中还是自己练习,如何正确高效的处理时间才能得心应手,方便快捷呢?今天咋们来聊一聊MySQL中时间的处理等操作!
1、MySQL处理时间----时间转为年、月、日
首先咱们先新建一张含有时间的表格stu:
若尚未学会建表的伙伴,点击这里,讲解非常详细:https://blog.csdn.net/L1542334210/article/details/101225290
create table stu (s_id varchar(3),
s_name varchar(4),s_sex varchar(1),
s_age int,s_bothday varchar(11)); --新建一张stu表格
insert into stu values
("001","李华","男",23,'1996-8-16'),
("002","王二","男",24,'1997-3-16'),
("003","赵敏","女",23,'1990-5-26'),
("004","张莹莹","女",22,'1995-2-16'),
("005","朱亚军","男",25,'1999-8-16'),
("006","马科","男",28,'1993-12-16'); --插入记录
这里我们采用例子说明,如:查找001号学生的生日是多少月份。我们利用curdate()函数进行处理,既然是月份,那么离不开转换时间,先看代码:
select month(s_bothday) 生日月份 from stu
where s_id='001';
结果为:
生日月份
8
可以看到,moth()将该同学的月份提取出来,那么有月份自然有年、日,看代码~看代码:
select year(s_bothday) 年,day(s_bothday) 日 from stu
where s_id='001';
结果为:
年 日
1996 16
2、MySQL处理时间----获取当地时间
MySQL获取时间的方法有以下四种:now()函数与localtime()函数均以"YYYY-MM-DD HH:MM:SS"返回当前的日期时间,可以直接存到datetime字段中。curdate()以"YYYY-MM-DD"的格式返回今天的日期,可以直接存到date字段中。curtime()以"HH:MM:SS"的格式返回当前的时间,可以直接存到time字段中。
具体代码实现为:
select now();
select localtime();
select curdate();
select curtime();
结果分别为:
2019-09-26 20:55:59
2019-09-26 20:55:59
2019-09-26
20:57:28
那么基于以上,我们来加大难度,题目为:查找本月过生日的同学信息。分析:此时需要获取当地时间取其月份然后等于截取同学s_bothday列的月份就好了,实现代码为:
select stu.* from stu
where month(s_bothday)=month(curdate());
额…这里没有9月份的,我们假如这个月份是8月份~哈哈…
select stu.* from stu
where month(s_bothday)=month(curdate())-1;
结果分别为:
001 李华 男 23 1996-8-16
005 朱亚军 男 25 1999-8-16
3、MySQL处理时间----时间与时间戳的转换
有时候我们需要计算系统运行时间,此时就要对时间进行计算,那么就需要时间与时间戳的转换。unix_timestamp()函数和current_timestamp()函数。具体使用看代码:
select unix_timestamp('2019-01-01'); #将时间日期转为时间戳
#1546272000
select current_timestamp(1546272000);#将时间戳转为时间日期
#2019-09-26 21:38:27
select unix_timestamp(now()); #记录此时系统时间
#1569505245
select unix_timestamp(now())-unix_timestamp('2019-01-01'); #计算时间差
#23233351
#要是看距离2019-01-01有多少天就除以(60*60*24)
select (unix_timestamp(now())-unix_timestamp('2019-01-01'))/(60*60*24);
#结果为:268.906天,有0.9天?取整数吧!
select round((unix_timestamp(now())-unix_timestamp('2019-01-01'))/(60*60*24),0);
#结果为269天
4、文末彩蛋–轻松一刻
以前高中的时候我好朋友小熊每天都要打牌,而且总要到半夜三更才回家。有一次,他女朋友极为愤恨地对他说:“我警告你,如果你再这样的话,我就要把男人带回出租房睡觉了!”此时小熊愤怒说到:“随便你啦!不过我也警告你,可别拉走我的牌友,不然我跟你急。”,但是人家小熊现在也结婚了,所以我在反思,我到现在都没有结婚,是不是应该放下手中的工作,去学学怎么赌博?
今天到这里就结束啦每篇文章都有文末彩蛋–轻松一刻哟感谢观看,我是Jetuser-data,[学习更多MySQL请加关注]
链接: [https://blog.csdn.net/L1542334210]
CSND:L1542334210
祝大家工作顺利!阖家欢乐!