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

此 SELECT 语句也包括日期:

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

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

STR_TO_DATE() 函数
创建 DATE、TIME 或 DATETIME 的另一个选项是使用 STR_TO_DATE() 函数。它接受一个日期字符串和一个格式字符串并返回:
- 如果字符串仅包含日期,则为 DATE 值
- 如果字符串仅包含时间,则为 TIME 值
- 如果格式字符串包含日期和时间部分,则为 DATETIME 值
此外,如果从 str 中提取的日期、时间或日期时间值无效,则 STR_TO_DATE() 返回 NULL 并产生警告。
例子
下面是数据库管理工具Navicat for MySQL中几个日期:

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

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

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

在“在 MySQL 中处理日期和时间”的这一部分中,我们介绍了使用 MySQL 的一些专用日期和时间函数在 MySQL 中创建日期和时间的几种方法。想要了解更多关于Navicat for MySQL使用教程以及价格信息,欢迎前往官方 站进行咨询。
Navicat for MySQL| 下载试用
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!