Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以天为单位显示MySQL正常运行时间_Mysql - Fatal编程技术网

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

以天为单位显示MySQL正常运行时间,mysql,Mysql,我发现此SQL查询显示MySQL正常运行时间: SHOW GLOBAL STATUS LIKE 'Uptime'; 但我得到的值是2059555 如何将其转换为天?在MySQL提示符下键入此,在最后一行中,我们将找到正常运行时间 mysql>\s 如果需要编写查询,也可以这样做。这将在数小时和数分钟内为您提供服务 select TIME_FORMAT(SEC_TO_TIME(VARIABLE_VALUE ),'%Hh %im') as Uptime from information

我发现此SQL查询显示MySQL正常运行时间:

SHOW GLOBAL STATUS LIKE 'Uptime';
但我得到的值是2059555


如何将其转换为天?

在MySQL提示符下键入此,在最后一行中,我们将找到正常运行时间

mysql>\s
如果需要编写查询,也可以这样做。这将在数小时和数分钟内为您提供服务

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

注意:5.7以上版本使用性能模式而不是信息模式

您可以使用MySQL Workbench(因为它是免费的)

进入选项卡
Management>server status

它将显示自2017年3月20日星期一15:29:45(1小时)起的跑步


您可以运行
显示全局状态
查找正常运行时间的值,以秒为单位。除以86400(60*60*24)转换为天。

使用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';
例如:

+----------------+---------------------+----------------------------+-------------+
| Uptime_seconds | Now                 | Up since                   | Uptime_days |
+----------------+---------------------+----------------------------+-------------+
| 16430228       | 2021-04-09 14:11:58 | 2020-10-01 10:14:50.000000 |         190 |
+----------------+---------------------+----------------------------+-------------+

可能是复制品。@cybermonkey:它们不是复制品。如果你不同意,那就开始吧。@eggyal是的,它们是重复的。问题本质上是“如何将秒转换为另一个值?”;重复目标回答了这个问题。只需稍作调整即可转换为天(无论如何仍然是重复的,否则我们会对一件简单的事情提出太多问题)。@cybermonkey:您假设OP知道
正常运行时间
服务器状态变量的单位,而这并不是问题中所指出的,该问题表明不理解应如何解释该值。其他任何问题都不能解决这个问题,甚至对解决这个问题都没有帮助。即使已知值为秒,这些问题都无助于转换
SHOW STATUS
命令的输出。所以,再一次,它不是复制品。如果你不同意的话,请继续讨论。现在MySQL 5.7的一个注意事项是:
selecttime\u格式(SEC\u-TO\u-TIME(变量值),“%Hh%im”)作为performance_schema.global_status中的正常运行时间,其中变量_NAME='Uptime'
如果正常运行时间>3020399,则此项不起作用,因为这是秒到秒时间可以正确转换的最大值。在5.7.23,正常运行时间为159天,这对我有效
SELECT ROUND(@d:=VARIABLE_VALUE/60/60/24)为天,ROUND(@d/30.5)为月,其中VARIABLE_NAME='uptime'
选择全局状态;错误1054(42S22):“字段列表”中的未知列“全局”
its
显示全局状态
not
select
这实际上就是问题的答案。由于夏令时的变化,根据时区的不同,天数可能会有不同的持续时间。使用
DATEDIFF
计算两个日期之间的天数。