将给定的分钟转换为hh:mm:ss格式

时间:2019-03-16 14:31:31

标签: sql sql-server tsql management-studio-express

这是我的数据库结构(简化):

if db_id('MovieDB') is null
    create database MovieDB;

go

use MovieDB;

go

if object_id(N'Movies', N'U') is null
create table Movies
(
    MovieID         bigint          not null    identity    primary key,
    Duration        time(7)         not null,
);

insert into Movies values
(format(dateadd(minute, 142, 0), N'hh:mm:ss', 'en-US'));

我插入的持续时间为分钟,我需要将其转换为hh:mm:ss格式。但是,执行此操作后,我得到了02:22:00.0000000

如何格式化日期以仅获取02:22:00

1 个答案:

答案 0 :(得分:1)

您可以转换为时间:

select convert(time, dateadd(minute, 142, 0))

或者,如果您希望将该值作为字符串,则可以使用老式的convert()

select convert(varchar(8), dateadd(minute, 142, 0), 108)

但是我很困惑。您将值存储为time,其中包含7位小数秒。然后,您抱怨看到小数秒。

分数秒可能对电影时间没有影响,所以为什么不使用:

Duration        time(0)         not null,