MySQL数据库:掌握常用日期函数大全,提升数据处理能力

mysql数据库常用日期函数大全

时间:2025-06-25 18:45


MySQL数据库常用日期函数大全 在MySQL数据库中,日期和时间函数是数据处理和分析中不可或缺的工具

    无论是记录数据的创建或更新时间、提取日期和时间的特定部分,还是进行日期计算,MySQL都提供了一系列强大的函数来满足这些需求

    本文将详细介绍MySQL中常用的日期函数,帮助您高效地处理日期和时间数据

     一、获取当前日期和时间 1.NOW() `NOW()`函数用于返回当前的日期和时间,包括年、月、日、时、分、秒

    其返回值格式为`YYYY-MM-DD HH:MM:SS`

    这个函数在记录数据的创建时间或更新时间时非常有用

    例如,在一个订单系统中,可以通过以下语句记录订单的创建时间: sql INSERT INTO orders(order_id, order_time) VALUES(1, NOW()); 执行该语句后,`order_time`字段将被设置为当前的日期和时间

    值得注意的是,`NOW()`函数在查询开始时获取时间戳,并在整个查询过程中保持不变,这确保了批量插入或更新操作中所有记录的时间戳一致性

     2.CURDATE() / CURRENT_DATE() `CURDATE()`和`CURRENT_DATE()`函数都用于返回当前的日期,其返回值格式为`YYYY-MM-DD`

    这两个函数在处理仅需要日期信息的场景时非常有用,例如在统计每日销售数据或用户注册数量时

    以下是一个示例: sql SELECT COUNT() FROM sales WHERE sale_date = CURDATE(); 该查询将返回当天的销售记录数量

    由于`CURDATE()`和`CURRENT_DATE()`函数仅返回日期部分,不包含时间信息,因此在处理日期范围查询时更加高效

     3.CURTIME() / CURRENT_TIME() `CURTIME()`和`CURRENT_TIME()`函数都用于返回当前的时间,其返回值格式为`HH:MM:SS`

    这两个函数在需要仅获取时间信息的场景时非常有用,例如在记录事件发生的具体时间或计算时间间隔时

    以下是一个示例: sql SELECT CURTIME(); 该语句将返回当前的时间

    由于`CURTIME()`和`CURRENT_TIME()`函数仅返回时间部分,不包含日期信息,因此在处理时间相关的计算时更加灵活

     二、提取日期和时间部分 MySQL提供了一系列函数来提取日期和时间的特定部分,包括年、月、日、时、分、秒等

     1.YEAR(date) `YEAR()`函数用于从日期或日期时间值中提取年份部分,其返回值为一个整数,表示年份

    例如: sql SELECT YEAR(2024-03-0712:34:56); 该语句将返回2024

    在实际应用中,`YEAR()`函数常用于按年份对数据进行分组或筛选

     2.MONTH(date) `MONTH()`函数用于从日期或日期时间值中提取月份部分,其返回值为一个整数,表示月份(1-12)

    例如: sql SELECT MONTH(2024-03-0712:34:56); 该语句将返回3

    `MONTH()`函数在按月份对数据进行分组或筛选时非常有用

     3.DAY(date) `DAY()`函数用于从日期或日期时间值中提取天数部分,其返回值为一个整数,表示月份中的天数(1-31)

    例如: sql SELECT DAY(2024-03-0712:34:56); 该语句将返回7

    `DAY()`函数在处理与日期相关的查询时非常有用

     4.HOUR(time) `HOUR()`函数用于从时间或日期时间值中提取小时部分,其返回值为一个整数,表示小时(0-23)

    例如: sql SELECT HOUR(2024-03-0712:34:56); 该语句将返回12

    `HOUR()`函数在处理与时间相关的查询时非常有用

     5.MINUTE(time) `MINUTE()`函数用于从时间或日期时间值中提取分钟部分,其返回值为一个整数,表示分钟(0-59)

    例如: sql SELECT MINUTE(2024-03-0712:34:56); 该语句将返回34

    `MINUTE()`函数在处理与时间相关的查询时非常有用

     6.SECOND(time) `SECOND()`函数用于从时间或日期时间值中提取秒部分,其返回值为一个整数,表示秒(0-59)

    例如: sql SELECT SECOND(2024-03-0712:34:56); 该语句将返回56

    `SECOND()`函数在处理与时间相关的查询时非常有用

     三、日期格式化与转换 1.DATE_FORMAT(date, format) `DATE_FORMAT()`函数用于自定义日期和时间的显示格式

    其第一个参数是日期或时间值,第二个参数是格式字符串

    常用的格式符号包括: -`%Y`:四位年份 -`%y`:两位年份 -`%M`:月份名称(如January) -`%m`:两位月份 -`%d`:两位日期 -`%H`:24小时制小时 -`%p`:AM/PM 例如: sql SELECT DATE_FORMAT(NOW(), %W, %M %d %Y); 该语句将返回类似“Wednesday, October252023”的格式化日期和时间

     2.STR_TO_DATE(str, format) `STR_TO_DATE()`函数用于将字符串转换为日期格式

    其第一个参数是待转换的字符串,第二个参数是字符串的格式

    例如: sql SELECT STR_TO_DATE(25,10,2023, %d,%m,%Y); 该语句将返回`2023-10-25`

     四、日期计算 MySQL提供了一系列函数来进行日期计算,包括添加或减去时间间隔、计算两个日期之间的差异等

     1.DATE_ADD(date, INTERVAL expr unit) `DATE_ADD()`函数用于在日期上添加指定的时间间隔

    其第一个参数是日期值,第二个参数是一个表达式,表示要添加的时间间隔和单位(如DAY、MONTH、YEAR等)

    例如: sql SELECT DATE_ADD(2024-03-07, INTERVAL10 DAY); 该语句将返回`2024-03-17`

    在实际应用中,`DATE_ADD()`函数常用于计算未来的日期,如订单的预计完成日期、任务的截止日期等

     2.DATE_SUB(date, INTERVAL expr unit) `DATE_SUB()`函数用于从日期中减去指定的时间间隔

    其参数和用法与`DATE_ADD()`函数类似,但表示减去时间间隔

    例如: sql SELECT DATE_SUB(2024-03-07, INTERVAL10 DAY); 该语句将返回`2024-02-27`

    在实际应用中,`DATE_SUB()`函数常用于计算过去的日期,如订单的下单日期、任务的开始日期等

     3.DATEDIFF(date1, date2) `DATEDIFF()`函数用于计算两个日期之间的天数差异

    其第一个参数是结束日期,第二个参数是开始日期

    函数返回两个日期之间的天数差

    例如: sql SELECT DATEDIFF(2024-03-17, 2024-03-07); 该语句将返回10,表示两个日期之间相差10天

     4.TIMESTAMPDIFF(unit, start, end) `TIMESTAMPDIFF()`函数用于返回两个日期时间之间的时间间隔,单位为指定的类型(如YEAR、MONTH、DAY等)

    其第一个参数是单位类型,第二个参数是开始日期时间,第三个参数是结束日期时间

    例如: sql SELECT TIMESTAMPDIFF(MONTH, 2023-01-01, 2023-10-25); 该语句将返回9,表示两个日期之间相差9个月

     五、其他实用函数 1.LAST_DAY(date) `LAST_DAY()`函数用于返回指定月份的最后一天的