SQL Server 如何使用trim和len函数来格式化时间值

wtlkbnrh  于 2022-12-17  发布在  其他
关注(0)|答案(2)|浏览(136)

表一:

| 姓名|银泰|
| - ------|- ------|
| 保尔史密斯|十五点十分四十五分|
我知道我们可以使用trimlen函数删除Name列中的最后一个字符(删除'smith'),以便仅将输出显示为'Paul'。
我们如何对Intime列中的时间做同样的处理?
我试过了

SELECT SUBSTRING('15:10:45.0486392',1,len('15:10:45.0486392')-8) AS Intime 
FROM stuattrecordAM

我得到的输出是预期的"15:10:45"

SELECT SUBSTRING('Intime',1,len('Intime')-8) AS Intime 
FROM stuattrecordAM

问题

当我尝试使用Intime列名而不是字符串时,显示以下错误:
参数数据类型time对于子字符串函数的参数1无效。
另见我前面的相关问题:How to trim Column Value SQL
如何格式化该值,使result只包含显示小时:分钟:秒的前8个字符?

6yt4nkrj

6yt4nkrj1#

要从格式正确的 time 中获取的hh:mm:ss部分,可以使用convert函数,例如

declare @t varchar(16) = '15:10:45.0486392';
select Convert(char(8), @t, 114);

结果:15:10:45

yk9xbfzb

yk9xbfzb2#

您可以使用REPLACE这样的简单函数来代替TRIMLEN

SELECT Value = REPLACE (Value, '''', '');

如果您仍然想使用TRIMLEN,请务必让我知道。

相关问题