Преобразование заданных минут в формат чч: мм: сс - PullRequest
1 голос
/ 16 марта 2019

Вот моя структура базы данных (упрощенно):

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 Ответ

1 голос
/ 16 марта 2019

Вы можете конвертировать во время:

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

Или, если вы хотите получить значение в виде строки, вы можете использовать старомодный convert():

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

Но я в замешательстве. Вы сохраняете значение как time с 7 цифрами дробных секунд. Тогда вы жалуетесь на то, что видите доли секунды.

Дробные секунды, вероятно, не имеют значения для времени кино, так почему бы просто не использовать:

Duration        time(0)         not null,
...