MySQL學習記錄--操作時間數據


1、返回日期的時間函數

  date_add() : 可以為指定日期增加/減少任意一段時間間隔。下面舉例將當前日期增加一個月和減少一個月

mysql> select date_add(current_date(), interval 1 month) as add_one_month;
+---------------+
| add_one_month |
+---------------+
| 2016-12-30    |
+---------------+
1 row in set (0.00 sec)

mysql> select date_add(current_date(), interval -1 month) as reduce_one_month;
+------------------+
| reduce_one_month |
+------------------+
| 2016-10-30       |
+------------------+
1 row in set (0.00 sec)

  格式:date_add('要修改的時間',interval 數量 時間間隔類型), 下面展示一些常見的時間間隔類型

間隔名稱 描述
Second 秒數
Minute 分鍾數
Hour 小時數
Day 天數
Month 月份
Year 年份
Minute_second 分鍾和秒,以":"分隔
Hour_second 小時、分鍾和秒,以":"分隔
Year_month 年份和月份,以"-"分隔

   下面對時間間隔后三種舉例:

  ①、將當前時間增加3小時20分鍾

mysql> select current_timestamp;  -- 當前時間 +---------------------+
| current_timestamp   |
+---------------------+
| 2016-11-30 15:22:46 |
+---------------------+
1 row in set (0.00 sec)

mysql> select date_add(current_timestamp, interval '3:20:00' Hour_second) as add_HourSecond;
+---------------------+
| add_HourSecond      |
+---------------------+
| 2016-11-30 18:42:49 |
+---------------------+
1 row in set (0.00 sec)

  ②、將日期'2000-01-01'增加16年10個月

mysql> select date_add('2000-01-01', interval '16-10' Year_month) as add_Year_month;
+----------------+
| add_Year_month |
+----------------+
| 2016-11-01     |
+----------------+
1 row in set (0.00 sec)

  

函數last_day() : 返回所求月份的最后一天

  舉例:求"2016-01-01"該月的最后一天

mysql> select last_day('2016-01-01');
+------------------------+
| last_day('2016-01-01') |
+------------------------+
| 2016-01-31             |
+------------------------+
1 row in set (0.00 sec)

 無論提供的參數是date型還是datetime型,last_day()函數都將返回一個date值

 

2、返回字符串的時間函數

  dayname() : 返回所求的日期是星期幾

  舉例:求當前日期是星期幾

mysql> select dayname(current_date);
+-----------------------+
| dayname(current_date) |
+-----------------------+
| Wednesday             |
+-----------------------+
1 row in set (0.00 sec)

  year()、month()、day()、time()...提取部分時間

mysql> select year(current_date),month(current_date),day(current_date),time(current_timestamp);
+--------------------+---------------------+-------------------+-------------------------+
| year(current_date) | month(current_date) | day(current_date) | time(current_timestamp) |
+--------------------+---------------------+-------------------+-------------------------+
|               2016 |                  11 |                30 | 16:12:57                |
+--------------------+---------------------+-------------------+-------------------------+
1 row in set (0.00 sec)

 

3、返回數字的時間函數

  datediff() : 計算兩個日期相隔的天數

  舉例:計算"2000-01-01"距離現在有多少天

mysql> select datediff('2016-11-30', '2000-01-01');
+--------------------------------------+
| datediff('2016-11-30', '2000-01-01') |
+--------------------------------------+
|                                 6178 |
+--------------------------------------+
1 row in set (0.00 sec)

  注:datediff()函數會忽略參數中的時鍾值。

    sql server 同樣具備datediff()函數,但可以在指定時間間隔的類型(如年、月、日、小時等)。sql server 實現上一個例子的方法:

select datediff(day, '2016-11-30', '2000-01-01');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM