SSMSで1900-01-01
を返すクエリがありますが、CASE WHEN
を1900-01-01
に置き換えて正確にはどのように使用できますか(空白ではない)。SQL Server:Nullの日付時刻を変換する
CAST(ISNULL(CAST(CONVERT(DATE, cmmt.[CmmtExpirationDate], 101) AS NVARCHAR(20)), '') AS DATE) AS [Cmmt Expiration Date]
結果:1900-01-01
私はこれを試してみましたが、運(ひどい構文):
CASE
WHEN (CAST(ISNULL(cast(convert(Date, cmmt.[CmmtExpirationDate] , 101) as nvarchar(20)), '') = '1900-01-01')
THEN ''
ELSE CAST(ISNULL(cast(convert(Date, cmmt.[CmmtExpirationDate] , 101) as nvarchar(20)),'') AS DATE
END
できません。空の文字列は、1900-01-01のdatetimeへの暗黙的な変換を強制します。ここのデータ型は日付であり、空文字列は有効な日付ではないことを覚えておく必要があります。日付がないときに空の文字列を表示する場合は、フロントエンドで行う必要があります。 –
あなたはすべての後に 'DATE'に変換しようとしています。空の文字列を' DATE'として持つことはできません( '1900-01-01'に変換します)。 – Lamak
' CmmtExpirationDate '? – Heinzi