我如何最好地将90060(秒)转换为字符串“ 25h 1m”?
目前,我正在使用SQL执行此操作:
SELECT
IF(
HOUR(
sec_to_time(
sum(time_to_sec(task_records.time_spent))
)
) > 0,
CONCAT(
HOUR(sec_to_time(sum(time_to_sec(task_records.time_spent)))),
'h ',
MINUTE(sec_to_time(sum(time_to_sec(task_records.time_spent)))),
'm'
),
CONCAT(
MINUTE(sec_to_time(sum(time_to_sec(task_records.time_spent)))),
'm'
)
) as time
FROM myTable;
但是我不确定这是最方便的方法:-)
我愿意在SQL(不同于我已经在做)或PHP中做到这一点。
编辑:
所需字符串的示例:“ 5m”,“ 40m”,“ 1h 35m”,“ 45h”,“ 46h 12m”。
TIME_FORMAT(SEC_TO_TIME(task_records.time_spent),'%Hh %im')
文档是您的朋友:
根据评论:
DROP FUNCTION IF EXISTS GET_HOUR_MINUTES;
CREATE FUNCTION GET_HOUR_MINUTES(seconds INT)
RETURNS VARCHAR(16)
BEGIN
DECLARE result VARCHAR(16);
IF seconds >= 3600 THEN SET result = TIME_FORMAT(SEC_TO_TIME(seconds),'%kh %lm');
ELSE SET result = TIME_FORMAT(SEC_TO_TIME(seconds),'%lm');
RETURN result;
END
DELIMETER ;
用法:
SELECT GET_HOUR_MINUTES(task_records.time_spent) FROM table
目前,当您获得youtube持续时间时,您会获得类似的内容。 下面的代码将其更改为。然而,我希望只获得SECONDS,因此将是输出。
我正在训练把人类可读时间转换成纪元时间。这是我的测试用例 上面的代码打印4次“无效输入”,然后第5行打印正确的历元值,因为我的text='12.12.2020'输入字符串符合第5个条件。我需要打印,如果我的“文本”条件符合任何这些格式,然后只打印纪元值,否则打印“无效输入”。有谁能帮我解决这个问题吗?提前道谢。
问题内容: 是否存在可用于将Unix时间戳转换为人类可读日期的MySQL函数?我有一个字段可以保存Unix时间,现在我想为人类可读的日期添加另一个字段。 问题答案: 用途: 另请参阅:的 MySQL文档。
我从GPS接收机接收到一个时间戳,它以秒后的微秒时间表示:
问题内容: 我需要将秒转换为“小时:分钟:秒”。 例如:“ 685”转换为“ 00:11:25” 我该如何实现? 问题答案: 您可以使用以下功能:
我正在寻找一种从“ISO 8601持续时间格式”(P0DT0H0M0S)转换为小时的便捷方法。 到目前为止,我想到了这个: 如您所见,我的方法是将数字拆分并乘以24、1、1/60、1/3600以得到小时。我可以减少代码量吗? 样本数据和所需结果 输入: 'P1DT2H3M44S' (1 天 2 小时 3 分 44 秒) 期望输出: 26.062222222222222 (这是小时)