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

在sql server中执行上述代码时出现以下错误。UpdatedOnisDateTime和 status的类型是 a varchar。我们想连接状态、日期和更新日期。

错误:

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

4

4 回答 4

15

你需要转换UpdatedOn成这样的varchar东西:

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

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

于 2013-10-23T11:20:39.803 回答
1

为了达到你所需要的,你需要 CAST the Date?

例子是;

您当前的错误代码:

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

建议的解决方案:

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

CAST / CONVERT 的 MSDN 文章

希望这可以帮助。

于 2013-10-23T11:22:35.027 回答
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]
于 2013-10-23T11:30:48.133 回答
1

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

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

120 代码会将您的日期转换为以下格式:2020-06-12 15:09:00 您可以从此链接使用其他格式

于 2020-06-12T09:50:56.250 回答