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 之间。
  • 如果参数为 NULLMINUTE() 函数将返回 NULL
SELECT
    MINUTE('10:11:12'),
    MINUTE('2024-02-28 10:11:12');

4、MONTH() 函数提取日期的月份部分并作为数字返回。

MONTH(date)

date:一个日期或者日期时间表达式。

  • MONTH() 函数的返回值介于 1 到 12 之间。
  • 如果参数为 NULLMONTH() 函数将返回 NULL
SELECT
    MONTH('2024-02-28'),
    MONTH('2024-02-28 10:11:12');

5、MONTHNAME() 返回给定日期的月份的名字。

MONTHNAME(date)

date:一个日期或者日期时间表达式。

  • MONTHNAME() 返回值将是以下值中的一个: JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember
  • 如果指定的表达式不是一个合法的日期或者日期时间,MONTHNAME() 函数将返回 NULL
  • 如果参数为 NULLMONTHNAME() 函数将返回 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

如果参数为 NULLPERIOD_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)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值