MySql获取当前时间及字符串转换:NOW、DATE_FORMAT与STR_TO_DATE详解

顾言
顾言
发布时间:2026-10-15| 2人浏览过
原创

本文讲解如何在 MySQL 数据库中获取当前系统时间,并提供使用 NOW()、SYSDATE() 等函数的详细差异说明。同时深度解析利用 DATE_FORMAT 将时间戳转换为特定字符串格式的语法,以及通过 STR_TO_DATE 实现字符串向日期类型的反向转换,附带常见格式代码表与实战案例。

MySQL 获取当前时间的函数选择

在 MySQL 开发中,获取当前日期和时间是最基础的需求。虽然存在多个相关函数,但正确理解其底层逻辑至关重要。

第1步:理解 NOW() 函数

NOW() 是最常用的获取当前日期和时间的函数。它返回包含年、月、日和秒的完整时间值(如 '2023-10-27 14:30:00')。

SELECT NOW();

关键特性: NOW() 返回的是语句开始执行的时间。在存储过程或触发器中,多次调用 NOW() 得到的结果是一致的。此外,以下函数在功能上与 NOW() 完全等效,建议优先使用简短易记的 NOW():

  • CURRENT_TIMESTAMP / CURRENT_TIMESTAMP()
  • LOCALTIME / LOCALTIME()
  • LOCALTIMESTAMP / LOCALTIMESTAMP()

第2步:掌握 SYSDATE() 的区别

SYSDATE() 同样获取当前时间,但它具有不同的行为机制。它在函数执行的瞬间捕获时间。如果在同一条 SQL 语句中多次调用 SYSDATE(),且中间间隔了足够长的时间,结果可能会不同。

SELECT SYSDATE();

适用场景: 适用于需要精确记录某个具体动作发生时刻的场景,而在常规查询中,通常推荐使用 NOW()。

时间格式化为字符串 (DATE_FORMAT)

将 MySQL 的日期时间类型转换为符合业务需求的字符串格式,主要使用 DATE_FORMAT(date, format) 函数。其中 format 参数决定了输出样式。

第3步:常用格式化参数规则

以下是构建自定义时间字符串时最常用的格式控制符:

  • 年月日: %Y(四位年份)、%y(两位年份)、%M(月份全称)、%m(两位月份)、%c(数字月份)、%D(英文后缀天数)、%d(两位天数)。
  • 时间: %H(24小时制)、%h(12小时制)、%i(分钟)、%s(秒)。简写形式如 %T 可直接表示 hh:mm:ss 格式。
  • 快捷组合: %r 代表 12 小时制带 AM/PM(hh:mm:ss AM),%p 仅表示 AM 或 PM。
  • 其他: %w(星期几,0=周日)、%j(一年中的第几天)。

第4步:实战转换示例

假设我们需要将当前时间转换为 'YYYY-MM-DD' 格式:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');

如果需要输出中文风格的日志,例如 '2023年10月27日 14:30:05',则可结合字面量字符:

SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H:%i:%s');

字符串反转为日期 (STR_TO_DATE)

当外部数据以字符串形式传入,需存入 MySQL 日期字段时,应使用 STR_TO_DATE(str, format) 进行逆向解析。其 format 参数的使用规则与 DATE_FORMAT 完全一致。

第5步:执行字符串转日期操作

将标准日期字符串 '2023-01-01' 转换为 MySQL 内部的 DATE/DATETIME 对象:

SELECT STR_TO_DATE('2023-01-01', '%Y-%m-%d');

注意事项: 如果输入的字符串格式与提供的 format 模式不匹配,函数可能返回 NULL。建议在入库前确保格式严格对应。

以上就是 MySQL 获取当前时间并处理字符串转换的详细教程,更多关于 MySQL 日期处理技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。