将 Varchar(6) 重新格式化为时间格式

Reformat Varchar(6) into Time format

我有一列以“时间”作为值,但它是作为 varchar(6) 类型引入的。 有什么好的方法可以将其转换为 HH:MM:SS 格式吗? 示例数据 (TimeField) 和我想要的 (NewTime),或者可以只是小时 (HourOnly)

TimeField      NewTime    HourOnly
 102157       10:21:57     10 am
 071740       07:17:40     7 am
 000602       00:06:02     12 am
 225058       22:50:58     10 pm

感谢您的帮助!

只需使用字符串函数和timefromparts():

timefromparts(left(timefield, 2), substring(timefield, 3, 2), right(timefield, 2))

如果你只想要小时部分,那就更简单了:

left(timefield, 2)                -- as a string
cast(left(timefield, 2) as int)   -- as an integer