【问题标题】: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

【问题讨论】:

  • 使用SUBSTRING
  • 到目前为止,YOU 尝试了什么?你被困在哪里了?
  • 子串结合串联。

标签: 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 |
\----------------------------------------------/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2010-12-19
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    相关资源
    最近更新 更多