Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ดึงเดือนและปีจากวันที่ใน MySQL ด้วย MONTH() และ YEAR()

บทนำ

การแยกส่วนประกอบของวันที่ (เดือน, ปี, วัน) ใน MySQL ใช้ฟังก์ชัน MONTH(), YEAR(), DAY() ซึ่งทำงานกับชนิดข้อมูล DATE, DATETIME, TIMESTAMP

ตัวอย่างการสร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    -> DueDate DATETIME
    -> );
Query OK, 0 rows affected (0.90 sec)
mysql> INSERT INTO DemoTable VALUES('2019-01-21');
mysql> INSERT INTO DemoTable VALUES('2019-06-15');
mysql> INSERT INTO DemoTable VALUES('2018-12-01');
mysql> INSERT INTO DemoTable VALUES('2015-04-01');
mysql> INSERT INTO DemoTable VALUES('2016-08-14');

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+---------------------+
| DueDate             |
+---------------------+
| 2019-01-21 00:00:00 |
| 2019-06-15 00:00:00 |
| 2018-12-01 00:00:00 |
| 2015-04-01 00:00:00 |
| 2016-08-14 00:00:00 |
+---------------------+
5 rows in set (0.00 sec)

คำสั่งดึงเดือนและปี

mysql> SELECT MONTH(DueDate) AS Month, YEAR(DueDate) AS Year FROM DemoTable;

ผลลัพธ์

+-------+------+
| Month | Year |
+-------+------+
| 1     | 2019 |
| 6     | 2019 |
| 12    | 2018 |
| 4     | 2015 |
| 8     | 2016 |
+-------+------+
5 rows in set (0.00 sec)

ฟังก์ชันวันที่/เวลาอื่นที่เกี่ยวข้อง

ฟังก์ชันคืนค่าช่วงค่า
YEAR(date)ปี1000-9999
QUARTER(date)ไตรมาส1-4
MONTH(date)เดือน1-12
WEEK(date)สัปดาห์ในปี0-53
DAY(date)วันในเดือน1-31
DAYOFWEEK(date)วันในสัปดาห์1(อา)-7(เส)
DAYOFYEAR(date)วันในปี1-366
HOUR(time)ชั่วโมง0-23
MINUTE(time)นาที0-59
SECOND(time)วินาที0-59

การประยุกต์: จัดกลุ่มและนับตามเดือน/ปี

SELECT YEAR(DueDate) AS Year, MONTH(DueDate) AS Month, COUNT(*) AS Count
FROM DemoTable
GROUP BY YEAR(DueDate), MONTH(DueDate)
ORDER BY Year, Month;

รูปแบบวันที่ไทย (Buddhist Era)

SELECT 
    YEAR(DueDate) + 543 AS ThaiYear,
    MONTH(DueDate) AS Month,
    DAY(DueDate) AS Day
FROM DemoTable;