時間獲取
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)