MySQL EXTRACT() 函数可以使用哪些类型的复合单元?


MySQL EXTRACT() 函数可以使用以下复合单元:

  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • HOUR_MICROSECOND
  • DAY_MICROSECOND
  • MINUTE_SECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

以下是一些在 EXTRACT() 函数中使用这些复合单元的示例:

mysql> Select EXTRACT(YEAR_MONTH from '2017-10-20');
+---------------------------------------+
| EXTRACT(YEAR_MONTH from '2017-10-20') |
+---------------------------------------+
|                             201710    |
+---------------------------------------+
1 row in set (0.00 sec)

以上查询将返回日期的年份和月份值。

mysql> Select EXTRACT(DAY_HOUR from '2017-10-20 05:46:45');
+----------------------------------------------+
| EXTRACT(DAY_HOUR from '2017-10-20 05:46:45') |
+----------------------------------------------+
|                                         2005 |
+----------------------------------------------+
1 row in set (0.00 sec)

以上查询将返回日期的日期和小时值。

我们必须考虑的一点是,上述复合单元是一组完整的值,即如果我们使用 DAY_MINUTE,MySQL 将返回 DAY、HOUR 和 MINUTE。这意味着任何通常预期的值都填充在起始单元和结束单元之间。

例如,下面的查询使用 DAY_MICROSECOND 复合单元,MySQL 返回 DAY、HOUR、MINUTE、SECOND 和 MICROSECOND。这意味着 HOUR、MINUTE 和 SECOND 的值填充在 DAY 和 MICROSECOND 之间。

mysql> Select EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356');
+---------------------------------------------------------------------------+
| EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356')                |
+---------------------------------------------------------------------------+
|                                                            22055245102356 |
+---------------------------------------------------------------------------+
1 row in set (0.00 sec)

更新于:2020年6月20日

90 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.