我们现在来掌握一下有关时间处理的函数。
比如我们现在导入这个库,我们发现这个库里面有一个last_update的字段,里面都是一些时间。
现在问题来了,如果我们想要根据这个时间来提取某一时段的数据要怎么做呢?
select * from sakila.film where date(last_update)='2006-02-15';
这里要注意两点,我们之所以要用date函数是因为,在last_update里面包含着年月日的日期,以及时分秒的时间。如果我们直接last_update='2006-02-15'这是不行的。'2006-02-15'是一个年月日格式的日期,所以我们也必须用日期的格式来相呼应,因此我们这里要用date()函数来提取出last_update里面的年月日。还要注意一点的是,日期这里一定要记得加上引号,没有引号的话是出不来结果的。
这块代码的意思可以理解为从film里面查找last_update的数据,但是要求是时间必须是'2006-02-15'
select date(last_update)from sakila.film where date(last_update)='2006-02-15';
如何选取一个范围内的时间的数据呢?
有两个方法:
方法一:
select * from sakila.film where date(last_update)>='2006-02-15' and date(last_update)<='2006-02-25'
这种方法简单粗暴。
方法二:
select * from sakila.film where year(last_update)='2006' and month(last_update)='2' and day(last_update)>='15' and day(last_update)<='25';
这种方法用year和month将年月设置好以后再对天进行具体的限制。
两种都可以,看个人选择。
如何计算两个日期的差呢?
CURTIME() 函数返回当前的时间
now返回的是现在的时间
DATEDIFF() 函数返回两个日期之间的天数。
now返回的是现在的时间,last_update是过去的时间,在datediff函数里面就表示两个时间相减,最后得到是两个时间之差的天数。