mysql - pad() 选择显示 2 个字符

标签 mysql jsp datetime jdbc time

我有一个有效的select语句MySQL,它返回小时分钟, secs 从以秒为单位的持续时间 -

SELECT Name, Zone, Duration,
FLOOR(Duration/60/60/24) as days,
FLOOR(Duration/60/60)%24 as hours,
FLOOR(Duration/60)%60 as mins,
Duration%60 as secs
from duration 

我希望每列都有 2 个字符,这样所有数据都是内联的,因此需要用零填充任何单个字符 (即,如果天数为 1,则填充/格式化,以便天数为 01)

我尝试过 pad() -

PAD(FLOOR(Duration/60/60/24),2,0) as days

但这会导致 NULL。

任何想法表示赞赏。

问候 拉尔夫

最佳答案

这是 SEC_TO_TIME() 的工作和 SUBSTR() 。 获取01:02:03使用SEC_TO_TIME(3723) .

要获取 HH、MM、SS 的零填充数字,请执行以下操作:

SELECT SUBSTR(SEC_TO_TIME(3723),1,2) HH, 
       SUBSTR(SEC_TO_TIME(3723),4,2) MM, 
       SUBSTR(SEC_TO_TIME(3723),7,2) SS

如果你有一个整数,比如 7 ,并且您需要文本字符串 07 ,您可以使用 LPAD() :

 SELECT LPAD(7,2,'0')

专业提示:使用 TIME , DATE , TIMESTAMP ,和/或DATETIME表中的数据类型确实是一个很好的实践,因为它允许您利用 MySQL 提供的所有日期算术。 JDBC 提供了从数据库端数据类型到 Java 数据类型的干净转换,使得它们的操作从数据库到程序几乎是无缝的。

专业提示:在一个月左右的时间内,每周从头到尾阅读这两个 MySQL 引用手册页。了解您可以使用的功能可以让您的工作变得更加轻松。

关于mysql - pad() 选择显示 2 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51651344/

相关文章:

javascript - 在 JavaScript 函数中传递撇号

css - 如何使用按钮代替输入,样式输入?

python - 将当前日期与 CSV 文件匹配并打印匹配项

mysql - SQL IF 语句错误

php - 如何在 MySQL 中安全地存储密码并向外部服务进行身份验证

java - 使用 Maven 和 Jetty 将数据从一个 JSP 文件发送到另一个 JSP 文件

python - 如何将 Azure 备份报告“持续时间”列转换为带小数的日期时间

mysql - 从存储为 varchar 的时间戳中获取时间

mysql 大表性能问题

mysql - GROUP 中的 MIN 日期