MySQL day()函式

2019-10-16 22:55:02

在本教學中,您將學習如何使用MySQL DAY函式來獲取指定日期的月份的日期(一個月的第幾天,也就是表示月份多少日/號)。

MySQL DAY函式簡介

DAY函式返回給定日期的月份的日期部分。下面顯示DAY函式的語法:

DAY(date);

DAY函式接受一個引數,它是您要獲取月份日期的日期值。如果date引數為零,例如'0000-00-00',則DAY函式返回0,如果日期為NULL,則DAY函式返回NULL值。

請注意,DAY函式是DAYOFMONTH函式的同義詞。

MySQL DAY函式範例

以下範例返回2018-01-15的當天的日期:

mysql> SELECT DAY('2018-01-15');
+-------------------+
| DAY('2018-01-15') |
+-------------------+
|                15 |
+-------------------+
1 row in set

要根據指定的日期獲取一個月中的天數,您可以組合LAST_DAYDAY函式,如以下範例所示:

mysql> SELECT DAY(LAST_DAY('2018-02-03'));
+-----------------------------+
| DAY(LAST_DAY('2018-02-03')) |
+-----------------------------+
|                          28 |
+-----------------------------+
1 row in set

LAST_DAY函式返回一月的最後一天,例如2016-02-29DAY函式返回最後一天的那個月的日期,也就是該月份的天數。

請參閱範例資料庫(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函式來獲取給定日期的某個月的日期。