SQL Server:将字符串转换为数字 - 从字符串

时间:2016-08-19 13:42:14

标签: sql sql-server

我在SQL Server Management Studio中获得了一个数据集。

数据如下所示

month   Year
-------------
Feb     2016
Jan     2015

我想使用01作为dd创建数字日期。我试过了

CAST('01-'+ month +'-'+ year AS DATE)

CONVERT(DATETIME, '01-'+ month +'-'+ year, 106) AS

它们都会导致此错误:

  

从字符串转换日期和/或时间时转换失败。

有人可以教我如何将字符串转换为数字日期时间/日期。

3 个答案:

答案 0 :(得分:1)

也许原因是连字符。您应该尝试使用空格:

convert(datetime, '01 '+ month +' '+ year, 106)

另一种可能性是month包含无效值。在SQL Server 2012+中,使用try_convert()来避免该问题:

try_convert(datetime, '01 '+ month +' '+ year, 106)

答案 1 :(得分:1)

另一种选择是在2012 +

时使用concat with convert
Select convert(datetime, concat(1,month ,year), 106)

答案 2 :(得分:0)

使用此代码

convert(datetime, concat('01-', mnth , '-',yr), 106) AS d