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

开启你的职业生涯

完成课程获得认证

开始学习
广告