MySQL EXTRACT()函数中可以使用哪种复合单位?

MySQLEXTRACT()函数可以使用以下复合单位-

  • 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)
猜你喜欢