【发布时间】:2019-11-05 05:48:08
【问题描述】:
我正在使用 SQL Server 2014,并且我有一个表 (t1),其中包含 nvarchar 格式的列 (ReviewDate)。
该列的一行示例如下:
ReviewDate
Mr John wrote a review in Oct 2017
我需要从这个字符串中提取“日期”部分。
为此,我的T-SQL如下:
SELECT (RIGHT([ReviewDate], 8)) as [ReviewDate 2]
FROM t1
这给了我“2017 年 10 月”。
现在,我想将“2017 年 10 月”转换为“2017-10-01”作为datetime 格式。这就是我卡住的地方。
我尝试了以下方法:
SELECT CONVERT(datetime, (RIGHT([ReviewDate], 8)), 121) as [ReviewDate2]
上面的语法给了我以下错误信息:“从字符串转换日期和/或时间时转换失败。”
SELECT CAST( (RIGHT([ReviewDate], 8)) as datetime) as [ReviewDate2]
上面的语法给了我同样的错误信息:
从字符串转换日期和/或时间时转换失败。
我们将不胜感激。
【问题讨论】:
-
这里有一个提示。尝试从 TableName 中选择 ReviewDate,其中 IsDate(RIGHT([ReviewDate], 8)) =0
标签: sql sql-server tsql datetime nvarchar