Mysql日期類型、時間戳、字符串常用函數及轉換

時間獲取

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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章