【发布时间】:2021-08-12 22:17:07
【问题描述】:
我对 SQL 比较陌生,遇到了一个我无法解决的转换问题。
我目前有一个表,其中包含以下varchar 列:
| Logged_Off_Duration |
|---|
| 8:59:41.000 |
| 7:16:05.000 |
| 7:02:22.000 |
| 9:13:32.000 |
| 0 |
| 14:22:56.000 |
| 10:39:00.000 |
| 7:37:59.000 |
| 6:57:57.000 |
我需要将这些值转换为时间格式 (hh:mm:ss),但如上表所示,我有超过 9 小时的行(24 小时格式)以及我所在的行只需有一个 0(零)。有人能帮我转换吗?我尝试了一些简单的 cast 和 convert 语句,但我一直遇到这个问题:
消息 241,第 16 级,状态 1,第 1 行
从字符串转换日期和/或时间时转换失败
【问题讨论】:
-
完美修复您的设计;不要使用
varchar来存储数据和时间值。根据您的数据,例如,“时间”'6:57:57.000'在'14:22:56.000'之后。
标签: sql sql-server time type-conversion data-conversion