时间获取
1.获取当天日期(日期类型):
mysql> select curdate();
+------------+
| 2018-05-28 |
+------------+
2.获取当前时间(日期类型):
mysql> select now();
+---------------------+
| 2018-05-28 13:10:40 |
+---------------------+
3.取得前一天日期(日期类型):
mysql> select date_sub(curdate(),interval 1 day);
+--------------+
| 2018-05-27 |
+--------------+
4.取得后一天日期(日期类型):
mysql> select date_add(curdate(),interval 1 day);
+------------+
| 2018-05-29 |
+------------+
5.获取当前月份(日期类型)
select month(now()) ////获取指定日期月份如:select month('2018-06-05')
+-----------+
| 5 |
+-----------+
6.获取当前年份(日期类型)
select year(now()) //获取指定日期年份如:select year('2018-06-05')
+-----------+
| 2018 |
+-----------+
相互转换
date(日期类型)、时间戳、字符串三者之间的相互转换
1.日期类型转字符串
select date_format(now(), '%Y-%m-%d');
#结果:1452001082
2.时间类型转unix时间戳
select unix_timestamp(now());
#结果:1452001082
3.字符串转日期类型
select str_to_date('2016-01-02', '%Y-%m-%d %H');
#结果:2016-01-02 00:00:00
4.字符串转unix时间戳
select unix_timestamp('2016-01-02');
#结果:1451664000
5.unix时间戳转日期类型
select from_unixtime(1451997924);
#结果:2016-01-05 20:45:24
6.unix时间戳转字符串
select from_unixtime(1451997924,'%Y-%d-%m');
//结果:2016-01-05 20:45:24
举例:
//查询日期为当天的的记录,add_time为unix时间戳:
//方法一:效率高,适合数据量少的
select add_time,from_unixtime(add_time,'%Y-%m-%d'),curdate() ,date_add(curdate(),interval 1 day)
from ci_book
where add_time between unix_timestamp(curdate()) and unix_timestamp(date_add(curdate(),interval 1 day))
//方法二:效率低,但是写起来简单,适合数据量少的
select add_time,from_unixtime(add_time,'%Y-%m-%d'),curdate() ,date_add(curdate(),interval 1 day)
from ci_book
where from_unixtime(add_time,'%Y-%m-%d') = curdate()
附表
MySQL日期格式化(format)