在本教學中,您將學習如何使用MySQL DAY
函式來獲取指定日期的月份的日期(一個月的第幾天,也就是表示月份多少日/號)。
DAY
函式返回給定日期的月份的日期部分。下面顯示DAY
函式的語法:
DAY(date);
DAY
函式接受一個引數,它是您要獲取月份日期的日期值。如果date
引數為零,例如'0000-00-00'
,則DAY
函式返回0
,如果日期為NULL,則DAY
函式返回NULL
值。
請注意,DAY
函式是DAYOFMONTH
函式的同義詞。
以下範例返回2018-01-15
的當天的日期:
mysql> SELECT DAY('2018-01-15');
+-------------------+
| DAY('2018-01-15') |
+-------------------+
| 15 |
+-------------------+
1 row in set
要根據指定的日期獲取一個月中的天數,您可以組合LAST_DAY
和DAY
函式,如以下範例所示:
mysql> SELECT DAY(LAST_DAY('2018-02-03'));
+-----------------------------+
| DAY(LAST_DAY('2018-02-03')) |
+-----------------------------+
| 28 |
+-----------------------------+
1 row in set
LAST_DAY
函式返回一月的最後一天,例如2016-02-29
,DAY
函式返回最後一天的那個月的日期,也就是該月份的天數。
請參閱範例資料庫(yiibaidb)中的以下orders
表,其結構如下所示 -
mysql> desc orders;
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| orderNumber | int(11) | NO | PRI | NULL | |
| orderDate | date | NO | | NULL | |
| requiredDate | date | NO | | NULL | |
| shippedDate | date | YES | | NULL | |
| status | varchar(15) | NO | | NULL | |
| comments | text | YES | | NULL | |
| customerNumber | int(11) | NO | MUL | NULL | |
+----------------+-------------+------+-----+---------+-------+
7 rows in set
以下語句將按日期計算查詢在2014年整年(12個月)內的訂單。
SELECT
DAY(orderdate) dayofmonth,
COUNT(*)
FROM
orders
WHERE
YEAR(orderdate) = 2014
GROUP BY dayofmonth
ORDER BY dayofmonth;
執行上面查詢語句,得到以下結果 -
+------------+----------+
| dayofmonth | COUNT(*) |
+------------+----------+
| 1 | 5 |
| 2 | 9 |
| 3 | 7 |
| 4 | 8 |
| 5 | 6 |
| 6 | 3 |
| 7 | 4 |
| 8 | 4 |
| 9 | 7 |
| 10 | 7 |
| 11 | 3 |
| 12 | 5 |
| 13 | 3 |
| 14 | 3 |
| 15 | 9 |
| 16 | 8 |
| 17 | 5 |
| 18 | 3 |
| 19 | 6 |
| 20 | 8 |
| 21 | 6 |
| 22 | 5 |
| 23 | 2 |
| 24 | 5 |
| 25 | 2 |
| 26 | 4 |
| 27 | 2 |
| 28 | 2 |
| 29 | 6 |
| 30 | 4 |
+------------+----------+
30 rows in set
在本教學中,您已經學習了如何使用MySQL DAY
函式來獲取給定日期的某個月的日期。