web-dev-qa-db-ja.com

SQL Server:文字列定数を日付と連結する方法は?

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

SQLサーバーで上記のコードを実行すると、以下のエラーが表示されます。 UpdatedOnのタイプはDateTimeで、ステータスはvarcharです。ステータス、Date、UpdatedOnを連結したかったのです。

エラー:

文字列から日付や時刻を変換するときに変換に失敗しました。

8
user2901979

UpdatedOnvarcharに次のように変換する必要があります。

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

日時を特定の形式にフォーマットする場合は、 CONVERT を使用する必要がある場合もあります。

12
Mahmoud Gamal

必要なものを達成するには、日付をキャストする必要がありますか?

例は次のようになります。

現在の不正なコード:

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

推奨される解決策:

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

CAST/CONVERTのMSDN記事

お役に立てれば。

1
Hexie

Null値を説明するには、次のことを試してください。

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]
1
user1429080