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');