SQL Server 查询(查看)将字符串转换为日期时间

Posted

技术标签:

【中文标题】SQL Server 查询(查看)将字符串转换为日期时间【英文标题】:SQL Server query (view) Convert String to DateTime 【发布时间】:2014-12-05 19:05:03 【问题描述】:

我有点生疏了,似乎完全忘记了如何做到这一点。我正在接收数据,数据时间列是字符串格式char(12)

例如:201411061900

如何编写查询(视图)以将其转换为DateTime

我使用过CONVERT (datetime, dbo.KWH.mr_dtm,120),但收到错误Conversion failed when converting date and/or time from character string.

我运气不太好。非常感谢您。

如果你也想建议 -5 时区,我不介意。 :)

【问题讨论】:

【参考方案1】:

Magnus 回答了我的问题。我想把它贴在这里,以防它对将来的任何人有所帮助。 Here is the link to the answer.

在 SQL Server 中,没有输出格式标识符(例如 120)可让您将 char(12) 转换为日期时间。但是你可以使用 Substring 函数:

Select Cast(Substring(dbo.KWH.mr_dtm,1,8) + ' ' + Substring(dbo.KWH.mr_dtm,9,2)+':'+ Substring(dbo.KWH.mr_dtm,11,2) as DateTime)

谢谢大家!非常感谢。 哦,这篇文章帮助我解决了我的时区设置问题。

Convert Datetime column from UTC to local time in select statement

非常感谢 Michael Goldshteyn 的时区转换。

【讨论】:

以上是关于SQL Server 查询(查看)将字符串转换为日期时间的主要内容,如果未能解决你的问题,请参考以下文章

如何将包含时区的字符串转换为日期时间 sql server

sql server中的怎么把数值型转换为字符串

使用 SQL Server 将逗号分隔的文本转换为多列结果

SQL server 模糊查询 排序 聚合函数 数学函数 字符串函数 时间日期函数 转换函数转换

将 SQL Server 查询转换为 Linq 查询

如何在 SQL Server 中将字符串转换为日期时间?