这是我的数据库结构(简化):
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
?
答案 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,