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)