将 varchar 转换为 datetime 并添加秒
Posted
技术标签:
【中文标题】将 varchar 转换为 datetime 并添加秒【英文标题】:Convert varchar to datetime and add seconds 【发布时间】:2017-01-06 12:39:54 【问题描述】:我有两列 startDate
(160812
- 年、月、日) 和 startTime
(112345
- 小时、模仿、秒) 与 varchar
数据类型我的目标是连接它们并转换它们日期时间。我应该向他们添加其他列 (duration - int
)
我尝试过这样的事情:
WITH [A] AS
(
SELECT (startDate + startTime) AS time1
FROM [Date]
)
SELECT
CONVERT(datetime, A.time1, 20)
FROM
[A]
但是我收到一条错误消息:
消息 241,第 16 级,状态 1,第 1 行 从字符串转换日期和/或时间时转换失败。
有什么更好的想法可以尝试吗?
【问题讨论】:
Bad habits to kick : choosing the wrong data type 【参考方案1】:我想你想要这样的东西:
select (convert(datetime, startDate, 12) +
convert(time, stuff(stuff(startTime, 5, 0, ':'), 3, 0, ':')))
) as dt
【讨论】:
以上是关于将 varchar 转换为 datetime 并添加秒的主要内容,如果未能解决你的问题,请参考以下文章
将 varchar 转换为 datetime 以对日期进行排序?
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围的问题