MySQL开发工具Navicat使用教程:MySQL 的许多面向日期或时间的函数(四)

Navicat for MySQL是管理和开发 MySQL 或 MariaDB 的理想解决方案。它是一套单一的应用程序,能同时连接 MySQL 和 MariaDB 数据库,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯云和华为云等云数据库兼容。

在这个关于日期和时间的系列中,我们探索了 MySQL 的五种时态数据类型,以及它的许多面向日期或时间的函数中的一些。在本文中,我们将介绍在 MySQL 中创建日期和时间的几种方法。

使用 MAKEDATE() 函式

在上篇教程中,我们简要介绍了 MAKEDATE() 函数。它接受 year 和 dayofyear,并返回生成的日期值。例如,MAKEDATE(2021, 200) 将返回“2021-07-19”的日期。这个函数的缺点应该很明显;如果你有 year、month 和 day,则需要进行一些计算来确定 dayofyear。在这种情况下,你可以通过将 MAKEDATE() 与 DATE_ADD() 组合来创建 DATE。day 为 1 的 MAKEDATE() 将为返回给定年份的第一天的 DATE,然后你可以使用 DATE_ADD() 添加月份和日期。这是一个仅设置 year 和 month 的示例:

Navicat for MySQL在 MySQL 中处理日期和时间

此 SELECT 语句也包括日期:

Navicat for MySQL在 MySQL 中处理日期和时间
MAKETIME() 函数

如果你只想创建一个 TIME,则 MAKETIME() 返回一个根据小时、分钟和秒参数计算的时间值:

Navicat for MySQL在 MySQL 中处理日期和时间

第二个参数可以有毫秒的小数部分:

Navicat for MySQL在 MySQL 中处理日期和时间
STR_TO_DATE() 函数

创建 DATE、TIME 或 DATETIME 的另一个选项是使用 STR_TO_DATE() 函数。它接受一个日期字符串和一个格式字符串并返回:

  • 如果字符串仅包含日期,则为 DATE 值
  • 如果字符串仅包含时间,则为 TIME 值
  • 如果格式字符串包含日期和时间部分,则为 DATETIME 值

此外,如果从 str 中提取的日期、时间或日期时间值无效,则 STR_TO_DATE() 返回 NULL 并产生警告。

例子

下面是数据库管理工具Navicat for MySQL中几个日期:

Navicat for MySQL在 MySQL 中处理日期和时间

扫描从 str 的开头开始,如果发现格式不匹配,则扫描失败。同时,忽略 str 末尾的额外字符:

Navicat for MySQL在 MySQL 中处理日期和时间

未指定的日期或时间部分的值为 0,因此日期或时间字符串中未完全指定的值会产生部分或全部部分设置为 0 的结果:

Navicat for MySQL在 MySQL 中处理日期和时间
组合 MAKEDATE()、MAKETIME() 和 STR_TO_DATE() 函数

如果我们有两个单独的 DATE 和 TIME 值,我们可以连接 MAKEDATE() 和 MAKETIME() 的结果然后将组合字符串传递给 STR_TO_DATE() 来获得 DATETIME 值。虽然这听起来可能需要做很多工作,但实际上非常简单:

Navicat for MySQL在 MySQL 中处理日期和时间

在“在 MySQL 中处理日期和时间”的这一部分中,我们介绍了使用 MySQL 的一些专用日期和时间函数在 MySQL 中创建日期和时间的几种方法。想要了解更多关于Navicat for MySQL使用教程以及价格信息,欢迎前往官方网站进行咨询。

Navicat for MySQL| 下载试用

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月4日
下一篇 2022年3月4日

相关推荐

发表回复

登录后才能评论