转载自 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
函数来获取给定日期的某个月的日期。