我在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
它们都会导致此错误:
从字符串转换日期和/或时间时转换失败。
有人可以教我如何将字符串转换为数字日期时间/日期。
答案 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 convertSelect convert(datetime, concat(1,month ,year), 106)
答案 2 :(得分:0)
使用此代码
convert(datetime, concat('01-', mnth , '-',yr), 106) AS d