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)
广告