1

Here's my database structure (simplified):

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'));

I inserted the duration as minutes and I need it to be converted to hh:mm:ss format. However, with the execution of this I get 02:22:00.0000000.

How can I format the date to get just 02:22:00?

user3132457
  • 789
  • 2
  • 11
  • 29

1 Answers1

1

You could convert to a time:

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

Or, if you want the value as a string, you can use the old-fashioned convert():

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

But I'm confused. You are storing the value as a time with 7 digits of fractional seconds. Then you are complaining about seeing the fractional seconds.

Fractional seconds probably don't make a difference for movie times, so why not just use:

Duration        time(0)         not null,
Gordon Linoff
  • 1,242,037
  • 58
  • 646
  • 786