以天为单位显示MySQL正常运行时间

Pet*_*zov 10 mysql

我发现这个SQL查询显示MySQL正常运行时间

SHOW GLOBAL STATUS LIKE 'Uptime';
Run Code Online (Sandbox Code Playgroud)

但我得到的价值2059555

我怎么能在几天内转换它?

Kou*_*jee 19

在MySQL提示符下键入this,在最后一行我们将找到Uptime

mysql>\s
Run Code Online (Sandbox Code Playgroud)

如果需要写一个查询.这将在几小时和几分钟内给你

select TIME_FORMAT(SEC_TO_TIME(VARIABLE_VALUE ),'%Hh %im')  as Uptime 
from information_schema.GLOBAL_STATUS 
where VARIABLE_NAME='Uptime'
Run Code Online (Sandbox Code Playgroud)

注意: 5.7版以上使用performance_schema而不是information_schema

  • 这里有一个注意事项,现在使用 MySQL 5.7,这是:`select TIME_FORMAT(SEC_TO_TIME(VARIABLE_VALUE),'%Hh %im') as Uptime from performance_schema.global_status where VARIABLE_NAME='Uptime'` https://dev.mysql.com/ doc/refman/5.7/en/performance-schema-variable-table-migration.html (2认同)
  • 如果正常运行时间> 3020399,则此方法将无效,因为这是SEC_TO_TIME可以正确转换的最大值。https://dev.mysql.com/doc/refman/5.7/zh-CN/time.html (2认同)

dol*_*men 8

对于 MySQL 5.7+:

SELECT
  VARIABLE_VALUE AS Uptime_seconds,
  NOW() AS "Now",
  NOW() - INTERVAL VARIABLE_VALUE SECOND AS "Up since",
  DATEDIFF(NOW(), NOW() - INTERVAL VARIABLE_VALUE SECOND) AS "Uptime_days"
FROM performance_schema.session_status
WHERE VARIABLE_NAME = 'Uptime';
Run Code Online (Sandbox Code Playgroud)

例子:

+----------------+---------------------+----------------------------+-------------+
| Uptime_seconds | Now                 | Up since                   | Uptime_days |
+----------------+---------------------+----------------------------+-------------+
| 16430228       | 2021-04-09 14:11:58 | 2020-10-01 10:14:50.000000 |         190 |
+----------------+---------------------+----------------------------+-------------+
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以运行SHOW GLOBAL STATUS;以查找 的值Uptime,以秒表示。除以 86,400 (60 * 60 * 24) 转换为天。

  • 它的“显示全局状态;”而不是“选择” (2认同)