在SQL Server中将日期时间列转换为子字符串

时间:2018-02-07 05:57:38

标签: sql-server date datetime casting substring

我的列OFFSTARTIME的数据类型为datetime。目前数据显示为

1900-01-01 08:00:00.000

我想只显示

08:00:00

为此,我尝试了以下查询:

SUBSTRING(CAST(OFFSTARTIME AS VARCHAR(19)), 12, 19)

但它显示

的输出
0 8:00AM

2 个答案:

答案 0 :(得分:1)

只有时间的数据类型,它是time数据类型:)

尝试cast(offstarttime as time)

如果你真的想要强制转换,那么将它强制转换为varchar并使用right函数: right(cast(offstarttime as varchar(23)), 12)

答案 1 :(得分:0)

您必须将值转换为varchar以获取请求的输出,如下所示。检查其他formats以及

DECLARE @myTime Datetime='1900-01-01 08:00:00.000'

SELECT CONVERT(VARCHAR(8), @myTime, 108)