MySQL--时间与日期的处理、获取当地时间、时间与时间戳转换


      更多关于数据库知识请加关注哟~~。若需联系和想安装MySQL请加博主:
      QQ:3327908431
      微信:ZDSL1542334210

        前言:时间的处理、操作、获取是非常重要的,无论是在工作中还是自己练习,如何正确高效的处理时间才能得心应手,方便快捷呢?今天咋们来聊一聊MySQL中时间的处理等操作!

1、MySQL处理时间----时间转为年、月、日

        首先咱们先新建一张含有时间的表格stu:
若尚未学会建表的伙伴,点击这里,讲解非常详细:https://blog.csdn.net/L1542334210/article/details/101225290

不知道函数用法和意思的伙伴请观看:MySQL–常用数学函数汇总、查询加部分数学运算查询https://blog.csdn.net/L1542334210/article/details/101227491

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列的月份就好了,实现代码为:

扫描二维码关注公众号,回复: 10585706 查看本文章
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
在这里插入图片描述
祝大家工作顺利!阖家欢乐!

发布了29 篇原创文章 · 获赞 53 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/L1542334210/article/details/101473793
今日推荐