pad()选择以显示2个字符

bweufnob  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(238)

我有一份工作 select 返回的语句 days , hours , mins , 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个字符,所以所有的数据是 inline 因此需要用零填充任何单个字符(即,如果days是1,那么pad/format使days是01)
我试过pad()-

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

但结果是空的。
有什么想法我都很感激。
向拉尔夫问好

ktca8awb

ktca8awb1#

这是我的工作 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参考手册。了解可供您使用的功能使您的工作更轻松。
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html

相关问题