前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在 MySQL 中处理日期和时间(四)

在 MySQL 中处理日期和时间(四)

作者头像
MySQL技术
发布2022-06-08 18:52:02
3.7K0
发布2022-06-08 18:52:02
举报
文章被收录于专栏:MySQL技术MySQL技术

第四章节:创建日期和时间的几种方法

在这个关于日期和时间的系列中,我们探索了 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 的示例:

此 SELECT 语句也包括日期:

  • MAKETIME() 函数

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

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

  • STR_TO_DATE() 函数

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

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

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

以下是几个日期案例:

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

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

  • 组合 MAKEDATE()、MAKETIME() 和 STR_TO_DATE() 函数

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

  • 总结

在这一部分中,我们介绍了使用 MySQL 的一些专用日期和时间函数在 MySQL 中创建日期和时间的几种方法。在下一部分中,我们将了解如何在 SELECT 查询中使用时态数据。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档