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

第三章节:重要的函数

 

在本系列关于日期时间的前两部分中,我们介绍了 MySQL 的五种时态数据类型。现在是时候将注意力转移到 MySQL 的许多面向日期或时间的函数了。

 

  • 获取当前日期和时间

在 MySQL 中获取当前日期和时间的函数为 NOW()。在 Navicat 查询窗口中,我们可以在不连接数据库的情况下调用此函数,因为我们没有选择任何表列:

 

在 MySQL 中处理日期和时间(三)插图

第二部分中提到,TIMESTAMP 类型类似于 DATETIME,但通常用于跟踪记录的更改。若要获取当前日期和时间作为 TIMESTAMP,我们可以使用 current_timestamp() 函数。这是它的输出:

 

在 MySQL 中处理日期和时间(三)插图1

  • 获取没有时间的当前日期

如果你只想在 MySQL 中获取当前日期,你可以使用 curdate() 或 current_date() 函数。系统变量 current_date 也可以。无论如何,这三个都以 YYYY-MM-DD 格式给出最新日期:

 

在 MySQL 中处理日期和时间(三)插图2

 

  • 仅获取当前时间

同样,我们可以使用 curtime() 或 current_time() 函数以及 current_time 系统变量来获取 MySQL 中的当前时间。这些都以 HH:MM:SS 格式给出了最新时间:

 

在 MySQL 中处理日期和时间(三)插图3

  • 分析各个日期部分

SQL Server 提供了通用的 DATEPART() 函数来提取日期时间的一部分。而 MySQL 提供了等效的 EXTRACT() 函数。与 SQL Server 函数类似,EXTRACT() 接受 part单位和 date:EXTRACT(part FROM date)

以下是所有有效的 part 值:

 

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

 

在撰写本文时是 2 月,所以以下调用 EXTRACT() 产生的值为“2”:

 

在 MySQL 中处理日期和时间(三)插图4

 

如以下查询所示,当前是整点 43 分钟:

 

在 MySQL 中处理日期和时间(三)插图5

是否难以记住所有 part 单位?没关系,因为 MySQL 提供了单独的函数来分析日期和时间。

若要从日期时间值分析日期或时间,分别有 DATE() 和 TIME() 函数:

 

在 MySQL 中处理日期和时间(三)插图6

若要将日期拆分为其组成部分,我们可以使用 YEAR()、MONTH() 和 DAYOFMONTH()(或 DAY())函数:

 

在 MySQL 中处理日期和时间(三)插图7

时间部分也有自己的函数:分别为 HOUR()、MINUTE() 和 SECOND():

 

在 MySQL 中处理日期和时间(三)插图8

发表评论

后才能评论