SQL Server:如何将字符串常量与日期连接?

时间:2013-10-23 11:18:49

标签: sql sql-server sql-server-2008r2-express

select packageid,status+' Date : '+UpdatedOn from [Shipment_Package] 

在sql server中执行上述代码时出现以下错误。 UpdatedOn的类型为DateTime,状态为varchar。我们想要连接状态,Date和UpdatedOn。

错误:

  

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

4 个答案:

答案 0 :(得分:11)

您需要将UpdatedOn转换为varchar,如下所示:

select packageid, status + ' Date : ' + CAST(UpdatedOn AS VARCHAR(10))
from [Shipment_Package];

如果您希望以特定格式格式化日期时间,则可能还需要使用CONVERT

答案 1 :(得分:1)

要获得您需要的东西,您需要CAST the Date?

示例是;

您当前的错误代码:

select packageid,status+' Date : '+UpdatedOn from [Shipment_Package] 

建议的解决方案:

select packageid,status + ' Date : ' + CAST(UpdatedOn AS VARCHAR(20))
from [Shipment_Package] 

MSDN article for CAST / CONVERT

希望这有帮助。

答案 2 :(得分:1)

要考虑空值,请尝试以下方法:

select packageid, 
    'Status: ' + isnull(status, '(null)') + ', Date : ' 
    + case when UpdatedOn is null then '(null)' else convert(varchar(20), UpdatedOn, 104) end as status_text
from [Shipment_Package]

答案 3 :(得分:0)

将Datetime列转换为sql Server的varchar可以使用以下代码

select packageid,status+' Date : '+CONVERT(VARCHAR,UpdatedOn,120) from [Shipment_Package] 

120代码会将您的日期转换为以下格式:2020-06-12 15:09:00 您可以从this link

使用的其他格式