如何将datetime附加到局部变量

时间:2015-06-12 14:40:35

标签: sql sql-server sql-server-2008 stored-procedures

我试图将varchar类型的日期(yyyy / mm / dd)转换为datetime并连接到局部变量。我收到错误“从字符串转换日期和/或时间时转换失败”。请让我知道如何解决这个问题。我正在使用sql 2008和convert()不工作。

set @select = 'select * from tbl t where t.date=''' + cast(replace(@startdate,'/','') as datetime) + ''''

当我尝试如下所示投射日期时,它会连接到@select变量,但不会提供所需的输出:

cast(cast(@startdate as datetime) as varchar(20))

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容来获得所需的输出:

FORMAT([DateColumn],'yyyy/MM/dd')

编辑: - 这对sql server 2008不起作用

这将

 REPLACE(Convert(nvarchar(10),[Datecolumn],111),'/','-')

编辑为格式为yyyy-mm-dd而不是yyyy / mm / dd