【问题标题】:How to convert varchar time to 24hours Time in SQL Server [closed]如何在 SQL Server 中将 varchar 时间转换为 24 小时时间 [关闭]
【发布时间】:2016-12-08 08:36:11
【问题描述】:
我的表有一个 VARCHAR 列,其中包含时间记录。记录如下:
TXN_TIME
--------
053124
173932
011815
120349
134207
我需要转换它
TXN_TIME
--------
05:31:24:000000
17:39:32:000000
01:18:15:000000
12:03:49:000000
13:42:07:000000
【问题讨论】:
标签:
sql
tsql
sql-server-2008-r2
【解决方案1】:
不清楚您希望您的结果是 VARCHAR 还是实际的 TIME 类型,所以两者都有:
DECLARE @Table TABLE (
TXN_TIME VARCHAR(6)
)
INSERT INTO @Table
SELECT '053124'
UNION
SELECT '173932'
UNION
SELECT '011815'
UNION
SELECT '120349'
UNION
SELECT '134207'
SELECT TXN_TIME,
LEFT(TXN_TIME,2) + ':' + SUBSTRING(TXN_TIME,3,2) + ':' + SUBSTRING(TXN_TIME,5,2) + ':000000' AS Converted,
CONVERT(TIME(6),LEFT(TXN_TIME,2) + ':' + SUBSTRING(TXN_TIME,3,2) + ':' + SUBSTRING(TXN_TIME,5,2)) AS ConvertedTime
FROM @Table
结果:
/----------------------------------------------\
| TXN_TIME | Converted | ConvertedTime |
|----------+-----------------+-----------------|
| 011815 | 01:18:15:000000 | 01:18:15.000000 |
| 053124 | 05:31:24:000000 | 05:31:24.000000 |
| 120349 | 12:03:49:000000 | 12:03:49.000000 |
| 134207 | 13:42:07:000000 | 13:42:07.000000 |
| 173932 | 17:39:32:000000 | 17:39:32.000000 |
\----------------------------------------------/