標籤:blog log 定時 ext timestamp last 計算 strong nes
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‘);
MySQL學習記錄--操作時間資料