MySQL - MAKEDATE() 函数
MySQL MAKEDATE() 函数用于根据给定的年份日期创建日期值。
此函数接受两个分别代表年份和日期的数值作为参数(顺序相同),并根据这些数值创建日期值,然后返回结果。如果给定的"年份日期"值小于 0,此函数将返回 NULL。即使其中一个参数为 NULL,结果仍然为 NULL。
语法
以下是 MySQL MAKEDATE() 函数的语法 -
MAKEDATE(year,dayofyear)
参数
此方法接受两个参数。如下所示 -
year: 要创建日期的年份。
dayofyear: 指定年份的天数(1 到 366)。
返回值
此函数返回一个日期值,表示给定年份中指定的日期。
示例
在下面的查询中,我们使用 MySQL MAKEDATE() 函数从给定的年份天数生成日期值 -
SELECT MAKEDATE(1947, 98) As Result;
输出
这将产生以下结果 -
Result |
---|
1947-04-08 |
示例
我们也可以将参数作为字符串值传递给此函数,如下所示 -
SELECT MAKEDATE('1890', '25') As Result;
输出
以下是输出 -
Result |
---|
1890-01-25 |
示例
如果第二个参数 (dayofyear) 为 0,则此函数返回 NULL -
SELECT MAKEDATE(0, 0) As Result;
输出
以下是输出 -
Result |
---|
NULL |
示例
如果传入的 year 参数为 0,则此函数假定给定的年份为 2000 -
SELECT MAKEDATE(0, 1) As Result;
输出
以下是输出 -
Result |
---|
2000-01-01 |
示例
如果此函数的任一参数为 NULL,则返回 NULL -
SELECT MAKEDATE(NULL, 225) As Result;
输出
以下是输出 -
Result |
---|
NULL |
示例
让我们使用 CREATE 语句在 MySQL 数据库中创建一个名为 PLAYERS 的表,如下所示 -
CREATE TABLE PLAYERS( ID int, NAME varchar(255), YEAROFBIRTH int, DAYOFYEAR int, COUNTRY VARCHAR(255), PRIMARY KEY (ID) );
现在,我们将使用 INSERT 语句在 MyPlayers 表中插入 7 条记录 -
INSERT INTO PLAYERS VALUES (1, 'Shikhar Dhawan', 1981, 339, 'India'), (2, 'Jonathan Trott', 1981, 112, 'SouthAfrica'), (3, 'Kumara Sangakkara', 1977, 300, 'Srilanka'), (4, 'Virat Kohli', 1988, 310, 'India'), (5, 'Rohit Sharma', 1987, 120, 'India'), (6, 'Ravindra Jadeja', 1988, 341, 'India'), (7, 'James Anderson', 1982, 181, 'England');
执行以下查询以获取上述创建的表中的所有插入记录 -
Select * From PLAYERS;
以下是 PLAYERS 表 -
ID | NAME | YEAROFBIRTH | DAYOFYEAR | COUNTRY |
---|---|---|---|---|
1 | Shikhar Dhawan | 1981 | 339 | India |
2 | Jonathan Trott | 1981 | 112 | SouthAfrica |
3 | Kumara Sangakkara | 1977 | 300 | Srilanka |
4 | Virat Kohli | 1988 | 310 | India |
5 | Rohit Sharma | 1987 | 120 | India |
6 | Ravindra Jadeja | 1988 | 341 | India |
7 | James Anderson | 1982 | 181 | England |
现在,我们使用 MySQL 的 MAKEDATE() 函数,根据提供的年份和日期值检索并打印出生日期 -
SELECT ID, NAME, COUNTRY, MAKEDATE(YEAROFBIRTH, DAYOFYEAR) As DateOfBirth From PLAYERS;
输出
输出结果如下 -
ID | NAME | COUNTRY | DateOfBirth |
---|---|---|---|
1 | Shikhar Dhawan | India | 1981-12-05 |
2 | Jonathan Trott | SouthAfrica | 1981-04-22 |
3 | Kumara Sangakkara | Srilanka | 1977-10-27 |
4 | Virat Kohli | India | 1988-11-05 |
5 | Rohit Sharma | India | 1987-04-30 |
6 | Ravindra Jadeja | India | 1988-12-06 |
7 | James Anderson | England | 1982-06-30 |