Sql 将给定分钟数转换为hh:mm:ss格式
以下是我的数据库结构(简化): 我将持续时间插入为分钟,需要将其转换为Sql 将给定分钟数转换为hh:mm:ss格式,sql,sql-server,tsql,management-studio-express,Sql,Sql Server,Tsql,Management Studio Express,以下是我的数据库结构(简化): 我将持续时间插入为分钟,需要将其转换为hh:mm:ss格式。但是,执行此命令后,我得到了02:22:00.0000000 如何设置日期格式以仅获取02:22:00?您可以转换为时间: select convert(time, dateadd(minute, 142, 0)) 或者,如果希望将值作为字符串,可以使用老式的convert(): 但我很困惑。您将该值存储为一个带有7位小数秒的时间。然后你就抱怨看到了分数秒 分数秒可能对电影时间没有影响,所以为什么不使用
hh:mm:ss
格式。但是,执行此命令后,我得到了02:22:00.0000000
如何设置日期格式以仅获取
02:22:00
?您可以转换为时间:
select convert(time, dateadd(minute, 142, 0))
或者,如果希望将值作为字符串,可以使用老式的convert()
:
但我很困惑。您将该值存储为一个带有7位小数秒的时间。然后你就抱怨看到了分数秒
分数秒可能对电影时间没有影响,所以为什么不使用:
Duration time(0) not null,
是的,实际上它不应该是时间(7)
,但在更改为时间(0)
或时间(7)后,我仍然得到7zeros@user3132457 . . . 您可以将该值转换为字符串(如第一个示例中所示),以获得所需的内容same@user3132457 . . . 使用convert(varchar(8),duration,108)
不可能获得小数秒。选择数据时需要执行此操作,而不是插入数据时。显示用于查看数据的代码。从[MovieDB].[dbo].[Movies]中选择TOP(1000)[MovieID],[Duration]
select convert(varchar(8), dateadd(minute, 142, 0), 108)
Duration time(0) not null,