MariaDB 函数

MariaDB EXTRACT() 函数用于从日期或日期时间值中提取部分内容。

语法

EXTRACT(unit FROM datetime) 

参数

datetime必填。 指定要从中提取部分的日期或日期时间值。
unit必填。 指定要提取的区间的单位类型。它可以是以下值之一:
  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER 
  • YEAR
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

返回值

返回提取的部分。

示例 1:

下面的示例显示了 EXTRACT() 函数的用法。

SELECT EXTRACT(DAY FROM '2019-10-25');
Result: 25

SELECT EXTRACT(HOUR FROM '2019-10-25 08:10:25');
Result: 8

SELECT EXTRACT(MINUTE FROM '2019-10-25 08:10:25');
Result: 10

SELECT EXTRACT(SECOND FROM '2019-10-25 08:10:25');
Result: 25

SELECT EXTRACT(WEEK FROM '2019-10-25 08:10:25');
Result: 42

SELECT EXTRACT(MONTH FROM '2019-10-25');
Result: 10

SELECT EXTRACT(QUARTER FROM '2019-10-25');
Result: 4

SELECT EXTRACT(YEAR FROM '2019-10-25');
Result: 2019

SELECT EXTRACT(MICROSECOND FROM '2019-10-25 08:10:25.000123');
Result: 123

SELECT EXTRACT(SECOND_MICROSECOND FROM '2019-10-25 08:10:25.000123');
Result: 25000123

SELECT EXTRACT(MINUTE_MICROSECOND FROM '2019-10-25 08:10:25.000123');
Result: 1025000123

SELECT EXTRACT(MINUTE_SECOND FROM '2019-10-25 08:10:25');
Result: 1025

SELECT EXTRACT(HOUR_MICROSECOND FROM '2019-10-25 08:10:25.000123');
Result: 81025000123

SELECT EXTRACT(HOUR_SECOND FROM '2019-10-25 08:10:25');
Result: 81025

SELECT EXTRACT(HOUR_MINUTE FROM '2019-10-25 08:10:25');
Result: 810

SELECT EXTRACT(DAY_MICROSECOND FROM '2019-10-25 08:10:25.000123');
Result: 25081025000123

SELECT EXTRACT(DAY_SECOND FROM '2019-10-25 08:10:25');
Result: 25081025

SELECT EXTRACT(DAY_MINUTE FROM '2019-10-25 08:10:25');
Result: 250810

SELECT EXTRACT(DAY_HOUR FROM '2019-10-25 08:10:25');
Result: 2508

SELECT EXTRACT(YEAR_MONTH FROM '2019-10-25 08:10:25');
Result: 201910 

示例 2:

考虑一个名为 EmployeeLogin 的数据库表,其中包含以下记录:

EmpIDNameLoginStamp
1John2019-10-25 09:20:38
2Marry2019-10-25 09:21:05
3Jo2019-10-25 09:24:35
4Kim2019-10-25 09:25:24
5Ramesh2019-10-25 09:27:16
6Suresh2019-10-25 09:28:19

从LoginStamp 列的记录,可以使用以下查询:

SELECT *, EXTRACT(HOUR_MINUTE FROM LoginStamp) AS EXTRACT_Value FROM EmployeeLogin; 

这将产生类似于以下内容的结果:

EmpIDNameLoginStampEXTRACT_Value
1John2019-10-25 09:20:38920
2Marry2019-10-25 09:21:05921
3Jo2019-10-25 09:24:35924
4Kim2019-10-25 09:25:24925
5Ramesh2019-10-25 09:27:16927
6Suresh2019-10-25 09:28:19928