文章出處
文章列表
[TOC]
獲取當前日期的函數和獲取當前時間的函數
CURDATE()
和CURRENT_DATE()
函數獲取當前日期;CURTIME()
和CURRENT_TIME()
函數獲取當前時間。
mysql> SELECT CURDATE(), CURRENT_DATE(), CURTIME(), CURRENT_TIME();
+------------+----------------+-----------+----------------+
| CURDATE() | CURRENT_DATE() | CURTIME() | CURRENT_TIME() |
+------------+----------------+-----------+----------------+
| 2016-07-19 | 2016-07-19 | 13:46:18 | 13:46:18 |
+------------+----------------+-----------+----------------+
獲取當前日期和時間的函數
NOW()
函數獲取當前日期和時間。
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2016-07-19 13:54:08 |
+---------------------+
獲取月份的函數
MONTH(d)
函數返回日期d中的月份值 ,其取值范圍是1~12
mysql> SELECT NOW(), MONTH(NOW());
+---------------------+--------------+
| NOW() | MONTH(NOW()) |
+---------------------+--------------+
| 2016-07-21 13:48:47 | 7 |
+---------------------+--------------+
MONTHNAME(d)
函數返回日期d中月份的英文名稱,如January,February等
mysql> SELECT NOW(), MONTHNAME(NOW());
+---------------------+------------------+
| NOW() | MONTHNAME(NOW()) |
+---------------------+------------------+
| 2016-07-21 13:50:31 | July |
+---------------------+------------------+
獲取星期的函數
DAYNAME(d)
函數返回日期d是星期幾,顯示其英文名,如Monday,Tuesday等
mysql> SELECT NOW(), DAYNAME(NOW());
+---------------------+----------------+
| NOW() | DAYNAME(NOW()) |
+---------------------+----------------+
| 2016-07-21 13:52:52 | Thursday |
+---------------------+----------------+
DAYOFWEEK(d)
函數返回日期d是星期幾,1表示星期天,2表示星期一,依次類推
mysql> SELECT NOW(), DAYOFWEEK(NOW());
+---------------------+------------------+
| NOW() | DAYOFWEEK(NOW()) |
+---------------------+------------------+
| 2016-07-21 13:57:05 | 5 |
+---------------------+------------------+
WEEKDAY(d)
函數返回日期d是星期幾,0表示星期一,1表示星期2,依次類推
mysql> SELECT NOW(), WEEKDAY(NOW());
+---------------------+----------------+
| NOW() | WEEKDAY(NOW()) |
+---------------------+----------------+
| 2016-07-21 13:59:01 | 3 |
+---------------------+----------------+
獲取星期數的函數
WEEK(d)
函數和WEEKOFYEAR(d)
函數都是計算日期d是本年的第幾個星期,返回值范圍是1~53
mysql> SELECT NOW(), WEEK(NOW()), WEEKOFYEAR(NOW());
+---------------------+-------------+-------------------+
| NOW() | WEEK(NOW()) | WEEKOFYEAR(NOW()) |
+---------------------+-------------+-------------------+
| 2016-07-21 14:03:17 | 29 | 29 |
+---------------------+-------------+-------------------+
獲取天數的函數
DAYOFYEAR(d)
函數返回日期d是本年的第幾天
mysql> SELECT NOW(), DAYOFYEAR(NOW());
+---------------------+------------------+
| NOW() | DAYOFYEAR(NOW()) |
+---------------------+------------------+
| 2016-07-21 14:05:10 | 203 |
+---------------------+------------------+
DAYOFMONTH(d)
函數返回日期d是本月的第幾天
mysql> SELECT NOW(), DAYOFMONTH(NOW());
+---------------------+-------------------+
| NOW() | DAYOFMONTH(NOW()) |
+---------------------+-------------------+
| 2016-07-21 14:06:06 | 21 |
+---------------------+-------------------+
獲取年份、季度、小時、分鐘和秒數的函數
YEAR(d)
函數返回日期d中的年份值;QUARTER(d)
函數返回日期d是本年的第幾個季度,值的范圍是1~4;HOUR(t)
函數返回時間t中的小時值;MINUTE(t)
函數返回時間t中的分鐘值;SECOND(t)
函數返回時間t中的秒數。
mysql> SELECT NOW(), YEAR(NOW()), QUARTER(NOW()), HOUR(NOW()), MINUTE(NOW()), SECOND(NOW());
+---------------------+-------------+----------------+-------------+---------------+---------------+
| NOW() | YEAR(NOW()) | QUARTER(NOW()) | HOUR(NOW()) | MINUTE(NOW()) | SECOND(NOW()) |
+---------------------+-------------+----------------+-------------+---------------+---------------+
| 2016-07-21 14:10:49 | 2016 | 3 | 14 | 10 | 49 |
+---------------------+-------------+----------------+-------------+---------------+---------------+
計算日期和時間函數
TO_DAYS(d)
函數計算日期d與0000年1月1日的天數
mysql> SELECT NOW(), TO_DAYS(NOW());
+---------------------+----------------+
| NOW() | TO_DAYS(NOW()) |
+---------------------+----------------+
| 2016-07-19 14:03:59 | 736529 |
+---------------------+----------------+
FROM_DAYS(n)
函數計算從0000年1月1日開始n天后的日期
mysql> SELECT FROM_DAYS(736529);
+-------------------+
| FROM_DAYS(736529) |
+-------------------+
| 2016-07-19 |
+-------------------+
DATEDIFF(d1, d2)
函數計算日期d1與d2之間相隔的天數
mysql> SELECT CURDATE(), DATEDIFF(CURDATE(), '2016-07-23');
+------------+-----------------------------------+
| CURDATE() | DATEDIFF(CURDATE(), '2016-07-23') |
+------------+-----------------------------------+
| 2016-07-21 | -2 |
+------------+-----------------------------------+
ADDDATE(d, n)
函數返回起始日期d加上n天后的日期
mysql> SELECT CURDATE(), ADDDATE(CURDATE(), 2);
+------------+-----------------------+
| CURDATE() | ADDDATE(CURDATE(), 2) |
+------------+-----------------------+
| 2016-07-21 | 2016-07-23 |
+------------+-----------------------+
SUBDATE(d, n)
函數返回起始日期d減去n天后的日期
mysql> SELECT CURDATE(), SUBDATE(CURDATE(), 2);
+------------+-----------------------+
| CURDATE() | SUBDATE(CURDATE(), 2) |
+------------+-----------------------+
| 2016-07-21 | 2016-07-19 |
+------------+-----------------------+
ADDTIME(t, n)
函數返回起始時間t加上n秒后的時間
mysql> SELECT CURTIME(), ADDTIME(CURTIME(), 50);
+-----------+------------------------+
| CURTIME() | ADDTIME(CURTIME(), 50) |
+-----------+------------------------+
| 09:02:18 | 09:03:08 |
+-----------+------------------------+
注:實際操作中,當t >= 60
時,ADDTIME(t, n)
函數返回NULL
SUBTIME(t, n)
函數返回起始時間t減去n秒后的時間
mysql> SELECT CURTIME(), SUBTIME(CURTIME(), 10);
+-----------+------------------------+
| CURTIME() | SUBTIME(CURTIME(), 10) |
+-----------+------------------------+
| 09:06:25 | 09:06:15 |
+-----------+------------------------+
注:實際操作中,當t >= 60
時,SUBTIME(t, n)
函數返回NULL
ADDDATE(d, INTERVAL expr type)
和DATE_ADD(d, INTERVAL expr type)
返回起始日期d加上一個時間段后的日期
- expr:時間段長度的表達式。
- type:日期間隔類型。
日期間隔類型:
類型 | 含義 | expr 表達式的形式 |
---|---|---|
YEAR | 年 | YY |
MONTH | 月 | MM |
DAY | 日 | DD |
HOUR | 時 | hh |
MINUTE | 分 | mm |
SECOND | 秒 | ss |
YEAR_MONTH | 年和月 | YY 和 MM 之間用任意符號隔開 |
DAY_HOUR | 日和小時 | DD 和 hh 之間用任意符號隔開 |
DAY_MINUTE | 日和分鐘 | DD 和 mm 之間用任意符號隔開 |
DAY_SECOND | 日和秒 | DD 和 ss 之間用任意符號隔開 |
HOUR_MINUTE | 時和分 | hh 和 mm 之間用任意符號隔開 |
HOUR_SECOND | 時和秒 | hh 和 ss 之間用任意符號隔開 |
MINUTE_SECOND | 分和秒 | mm 和 ss 之間用任意符號隔開 |
mysql> SELECT NOW(), ADDDATE(NOW(), INTERVAL 1 MONTH);
+---------------------+----------------------------------+
| NOW() | ADDDATE(NOW(), INTERVAL 1 MONTH) |
+---------------------+----------------------------------+
| 2016-07-21 11:46:33 | 2016-08-21 11:46:33 |
+---------------------+----------------------------------+
SUBDATE(d, INTERVAL expr type)
函數返回起始日期d減去一個時間段后的日期
mysql> SELECT NOW(), SUBDATE(NOW(), INTERVAL 1 MONTH);
+---------------------+----------------------------------+
| NOW() | SUBDATE(NOW(), INTERVAL 1 MONTH) |
+---------------------+----------------------------------+
| 2016-07-21 11:49:42 | 2016-06-21 11:49:42 |
+---------------------+----------------------------------+
將日期和時間格式化的函數
DATE_FORMAT(d, f)
函數按照表達式f的要求顯示日期d
日期時間格式:
符號 | 含義 | 取值示例 |
---|---|---|
%Y | 以4位數字表示年份 | 2008,2009等 |
%y | 以2位數字表示年份 | 98,99等 |
%m | 以2位數字表示月份 | 01,02等 |
%c | 以數字表示月份 | 1,2等 |
%M | 月份的英文名 | January,February等 |
%b | 月份的英文縮寫 | Jan,Feb等 |
%U | 表示星期數,其中 Sunday 是星期的第一天 | 00~52 |
%u | 表示星期數,其中 Monday 是星期的第一天 | 00~52 |
%j | 以3位數字表示年中的天數 | 001~366 |
%d | 以2位數字表示月中的幾號 | 01~31 |
%e | 以數字表示月中的幾號 | 1~31 |
%D | 以英文后綴表示月中的幾號 | 1st,2nd等 |
%w | 以數字的形式表示星期幾 | 0表示Sunday,1表示Monday |
%W | 星期幾的英文名 | Monday,... , Sunday |
%a | 星期幾的英文縮寫 | Mon, ... , Sun |
%T | 24小時制的時間形式 | 00:00:00~23:59:59 |
%r | 12小時制的時間形式 | 12:00:00AM~11:59:59PM |
%p | 上午或下午 | AM或PM |
%k | 以數字表示24小時 | 0,1,...,23 |
%l | 以數字表示12小時 | 0,1,...,12 |
%H | 以2位數表示24小時 | 00,01,...,23 |
%h,%I | 以2位數表示12小時 | 00,01,...,12 |
%i | 以2位數表示分 | 00~59 |
%S,%s | 以2位數表示秒 | 00~59 |
%% | 標識符% |
mysql> SELECT NOW(), DATE_FORMAT(NOW(), '%Y-%M-%d %H:%i:%s');
+---------------------+-----------------------------------------+
| NOW() | DATE_FORMAT(NOW(), '%Y-%M-%d %H:%i:%s') |
+---------------------+-----------------------------------------+
| 2016-07-21 13:33:12 | 2016-July-21 13:33:12 |
+---------------------+-----------------------------------------+
文章列表
全站熱搜