4 个从 MariaDB 中的时间值返回秒部分的函数
以下是 4 个函数,使您能够从 MariaDB 中的时间值返回秒部分。
函数SECOND()
该函数返回给定表达式的秒部分。它接受一个参数,即您要从中提取秒的时间。SECOND()TIME``DATETIME
例:
SELECT SECOND('03:45:30');
结果:
+——————–+ | SECOND(‘03:45:30’) | +——————–+ | 30 | +——————–+
TIME值可以在“范围到”中。这包括微秒,但只返回秒部分(有一个返回微秒的函数)。'-838:59:59.999999'``'838:59:59.999999'``SECOND()MICROSECOND()
TIME值也可以为负数。在这种情况下,返回一个正值。SECOND()
下面是带有微秒部分的负时间值:
SELECT SECOND('-838:59:59.999999');
结果:
+—————————–+ | SECOND(’-838:59:59.999999’) | +—————————–+ | 59 | +—————————–+
秒部分按预期提取。
函数EXTRACT()
该函数允许您从日期/时间值中提取指定的单位。因此,您可以使用它从时间值中提取秒(以及其他单位)。EXTRACT()
例:
SELECT EXTRACT(SECOND FROM '10:47:01');
结果:
+———————————+ | EXTRACT(SECOND FROM ‘10:47:01’) | +———————————+ | 1 | +———————————+
函数TIME_FORMAT()
该函数允许您根据格式字符串设置时间值的格式。格式字符串指定应如何设置时间格式。TIME_FORMAT()
因此,您可以使用此函数从时间返回秒(以及分钟和小时)。
Theandformat 说明符都返回两位数的秒数:%s``%S
SELECT
TIME_FORMAT('10:07:30', '%s'),
TIME_FORMAT('10:07:30', '%S');
结果:
+——————————-+——————————-+ | TIME_FORMAT(‘10:07:30’, ‘%s’) | TIME_FORMAT(‘10:07:30’, ‘%S’) | +——————————-+——————————-+ | 30 | 30 | +——————————-+——————————-+
您还可以使用格式说明符返回六位子秒:$f
SELECT
TIME_FORMAT('10:07:30.123456', '%f') AS "Microseconds",
TIME_FORMAT('10:07:30.123456', '%s.%f') AS "Both";
结果:
+————–+———–+ | Microseconds | Both | +————–+———–+ | 123456 | 30.123456 | +————–+———–+
该函数接受可与函数一起使用的格式字符串的子集。请参阅MariaDB格式字符串 获取可用于的格式字符串/说明符的完整列表。该函数仅接受小时、分钟和秒/亚秒的格式说明符。任何其他格式说明符都会导致返回。TIME_FORMAT()``DATE_FORMAT()``DATE_FORMAT()``TIME_FORMAT()``null``0
函数DATE_FORMAT()
该函数允许您根据格式字符串格式化日期或日期时间值。格式字符串指定应如何设置日期/时间的格式。DATE_FORMAT()
因此,我们可以使用与上一个示例中的函数相同的格式说明符。但是,不接受 avalue,因此我们需要传递 avalue。TIME_FORMAT()``DATE_FORMAT()``TIME``DATETIME
SELECT DATE_FORMAT('2023-01-01 10:07:30', '%s');
结果:
+——————————————+ | DATE_FORMAT(‘2023-01-01 10:07:30’, ‘%s’) | +——————————————+ | 30 | +——————————————+
仅传递 avalue 不适用于此函数:TIME
SELECT DATE_FORMAT('10:07:30', '%s') AS '%s';
结果:
+——+ | %s | +——+ | 00 | +——+