Các kiểu dữ liệu DATE, DATETIME và TIMESTAMP trong MySQL được sử dụng để lưu trữ các giá trị ngày, ngày tháng và thời gian, dấu thời gian tương ứng. Trong đó dấu thời gian là một giá trị số biểu thị số mili giây từ '1970-01-01 00. 00. 01' UTC [kỷ nguyên] đến thời gian đã chỉ định. MySQL cung cấp một tập hợp các chức năng để thao tác các giá trị này
Hàm MYSQL YEAR[] được sử dụng để truy xuất và trả về năm của ngày đã cho hoặc biểu thức ngày giờ. Hàm này trả về một giá trị số nằm trong khoảng từ 1000 đến 9999
cú pháp
Sau đây là cú pháp của hàm trên –
YEAR[date];
Trong đó, ngày là giá trị ngày mà bạn cần truy xuất năm
ví dụ 1
Ví dụ sau minh họa cách sử dụng hàm YEAR[] –
mysql> SELECT YEAR['2019-05-25']; +--------------------+ | YEAR['2019-05-25'] | +--------------------+ | 2019 | +--------------------+ 1 row in set [0.01 sec]
ví dụ 2
Sau đây là một ví dụ khác về chức năng này –
mysql> SELECT YEAR['2008-09-17']; +--------------------+ | YEAR['2008-09-17'] | +--------------------+ | 2008 | +--------------------+ 1 row in set [0.00 sec]
ví dụ 3
Nếu giá trị NĂM trong ngày đã cho là 0 thì hàm này trả về 0 —
mysql> SELECT YEAR['0000-08-20']; +--------------------+ | YEAR['0000-08-20'] | +--------------------+ | 0 | +--------------------+ 1 row in set [0.00 sec] mysql> SELECT YEAR['0000-00-07']; +--------------------+ | YEAR['0000-00-07'] | +--------------------+ | 0 | +--------------------+ 1 row in set [0.00 sec]
Ví dụ 4
Nếu bạn chuyển một chuỗi rỗng hoặc một giá trị không phải chuỗi làm đối số, hàm này sẽ trả về NULL
mysql> SELECT YEAR['']; +----------+ | YEAR[''] | +----------+ | NULL | +----------+ 1 row in set, 1 warning [0.00 sec] mysql> SELECT YEAR[1990-11-11]; +------------------+ | YEAR[1990-11-11] | +------------------+ | NULL | +------------------+ 1 row in set, 1 warning [0.00 sec]
Ví dụ 5
Chúng ta cũng có thể chuyển biểu thức ngày-giờ làm đối số cho hàm này –
mysql> SELECT YEAR['2015-09-05 09:40:45.2300']; +----------------------------------+ | YEAR['2015-09-05 09:40:45.2300'] | +----------------------------------+ | 2015 | +----------------------------------+ 1 row in set [0.00 sec]
Ví dụ 6
Trong ví dụ sau, chúng tôi đang truy xuất năm kể từ ngày hiện tại —
mysql> SELECT YEAR[CURDATE[]]; +-----------------+ | YEAR[CURDATE[]] | +-----------------+ | 2021 | +-----------------+ 1 row in set [0.00 sec]
Ví dụ 7
Trong ví dụ sau, chúng tôi đang truy xuất năm từ dấu thời gian hiện tại —
mysql> SELECT YEAR[CURRENT_TIMESTAMP[]]; +---------------------------+ | YEAR[CURRENT_TIMESTAMP[]] | +---------------------------+ | 2021 | +---------------------------+ 1 row in set [0.00 sec]
Ví dụ 8
Bạn cũng có thể chuyển tên cột làm đối số cho hàm này. Chúng ta hãy tạo một bảng có tên MyPlayers trong cơ sở dữ liệu MySQL bằng cách sử dụng câu lệnh CREATE như hình bên dưới –
________số 8Truy vấn sau truy xuất và in năm từ tất cả các thực thể của cột Date_Of_Birth của bảng MyPlayers —
mysql> SELECT First_Name, Last_Name, Date_Of_Birth, Country, YEAR[Date_Of_Birth] FROM MyPlayers; +------------+------------+---------------+-------------+---------------------+ | First_Name | Last_Name | Date_Of_Birth | Country | YEAR[Date_Of_Birth] | +------------+------------+---------------+-------------+---------------------+ | Shikhar | Dhawan | 1981-12-05 | India | 1981 | | Jonathan | Trott | 1981-04-22 | SouthAfrica | 1981 | | Kumara | Sangakkara | 1977-10-27 | Srilanka | 1977 | | Virat | Kohli | 1988-11-05 | India | 1988 | | Rohit | Sharma | 1987-04-30 | India | 1987 | | Ravindra | Jadeja | 1988-12-06 | India | 1988 | | James | Anderson | 1982-06-30 | England | 1982 | +------------+------------+---------------+-------------+---------------------+ 7 rows in set [0.17 sec]
Ví dụ 9
Giả sử chúng ta đã tạo một bảng có tên SubscriberDetails với 5 bản ghi trong đó bằng cách sử dụng các truy vấn sau –