MySQL 【日期】函数大全(四)
目录
1、MAKEDATE() 根据年份和一年中天数创建一个日期并返回。
2、MAKETIME() 指定的时、分、秒创建一个时间并返回。
3、MINUTE() 函数提取并返回时间的分钟部分。
4、MONTH() 函数提取日期的月份部分并作为数字返回。
5、MONTHNAME() 返回给定日期的月份的名字。
6、NOW() 函数按 YYYY-MM-DD hh:mm:ss 格式返回当前时间和日期。
7、PERIOD_ADD() 在指定年月上加上指定的月数将结果作为年月返回。
8、PERIOD_DIFF() 返回两个通过年月指定的时期之间相差的月数。
MAKEDATE() | MAKETIME() | MINUTE() | MONTH() |
MONTHNAME() | NOW() | PERIOD_ADD() | PERIOD_DIFF() |
1、MAKEDATE()
根据年份和一年中天数创建一个日期并返回。
MAKEDATE(year, day_of_year)
year:
表示年份的 4 位数字。
day_of
_year:
一年中的第几天。应该大于0
。
SELECT
MAKEDATE(2024, 1),
MAKEDATE(2024, 31),
MAKEDATE(2024, 32),
MAKEDATE(2024, 0)
2、MAKETIME()
指定的时、分、秒创建一个时间并返回。
MAKETIME(hour, minute, second)
hour:
小时。
minute:
分钟,取值范围从0
到59
。
second:
秒,取值范围从0
到59
。
- 如果
minute
不在0
到59
之间,MAKETIME()
函数将返回NULL
。- 如果
second
不在0
到59
之间,MAKETIME()
函数将返回NULL
。注意:MySQL 支持的时间的范围是从
-838:59:59
到838:59:59
。
SELECT
MAKETIME(10, 11, 12),
MAKETIME(100, 11, 12),
MAKETIME(839, 11, 12),
MAKETIME(-999, 11, 12),
MAKETIME(10, 11, 12),
MAKETIME(10, 60, 12),
MAKETIME(10, 11, 75)
3、MINUTE()
函数提取并返回时间的分钟部分。
MINUTE(time)
time:
一个时间或者日期时间表达式。
MINUTE()
函数的返回值介于0
到59
之间。- 如果参数为
NULL
,MINUTE()
函数将返回NULL
。
SELECT
MINUTE('10:11:12'),
MINUTE('2024-02-28 10:11:12');
4、MONTH()
函数提取日期的月份部分并作为数字返回。
MONTH(date)
date:
一个日期或者日期时间表达式。
MONTH()
函数的返回值介于1
到12
之间。- 如果参数为
NULL
,MONTH()
函数将返回NULL
。
SELECT
MONTH('2024-02-28'),
MONTH('2024-02-28 10:11:12');
5、MONTHNAME()
返回给定日期的月份的名字。
MONTHNAME(date)
date:
一个日期或者日期时间表达式。
MONTHNAME()
返回值将是以下值中的一个:January
,February
,March
,April
,May
,June
,July
,August
,September
,October
,November
,December
。- 如果指定的表达式不是一个合法的日期或者日期时间,
MONTHNAME()
函数将返回NULL
。- 如果参数为
NULL
,MONTHNAME()
函数将返回NULL
。
SELECT
MONTHNAME('2024-01-01'),
MONTHNAME('2024-11-01'),
MONTHNAME('2024-12-01'),
MONTHNAME('Not A DATE'),
MONTHNAME(NULL)
SELECT
MONTHNAME(NOW()),
MONTHNAME(CURDATE()),
MONTHNAME(CURRENT_DATE()),
MONTHNAME(SYSDATE())
6、NOW()
函数按 YYYY-MM-DD hh:mm:ss
格式返回当前时间和日期。
与 SYSDATE()SYSDATE()SYSDATE() 函数不同,NOW()
函数返回的是所在的语句、函数、存储过程开始执行的时间,并不一定是执行的 NOW()
函数时确切的系统时间。
SELECT NOW(), NOW() + 1;
7、PERIOD_ADD()
在指定年月上加上指定的月数将结果作为年月返回。
PERIOD_ADD(period, month_number)
period:
使用YYYYMM
或YYMM
格式表示的时期。
month_number:
需要加到period
上的月数。
PERIOD_ADD()
函数返回值是一个数字,格式是YYYYMM
。如果参数为
NULL
,PERIOD_ADD()
函数将返回NULL
。
SELECT
PERIOD_ADD(202401, 1),
PERIOD_ADD(202401, 2),
PERIOD_ADD(202401, 12)
8、PERIOD_DIFF()
返回两个通过年月指定的时期之间相差的月数。
PERIOD_DIFF(period1, period2)
period1:
格式:YYYYMM
或YYMM
。
period2:
格式:YYYYMM
或YYMM
。
SELECT
PERIOD_DIFF(202402, 202401),
PERIOD_DIFF(202403, 202401),
PERIOD_DIFF(202401, 202301)