1

varchar として正しく設定されていない列 startDate が tbMyTable にあります。この列のデータのほとんどは適切ですが、複数の日時形式が使用されています。テーブルのいくつかの行では、列にがらくたがあります。

列を varchar(50) から null 許容 DateTime に変換する SQL スクリプトを作成するのを手伝ってください - 変換可能なデータを保存し、不良データを null に設定します。

ケン

4

1 に答える 1

2

この t-sql スクリプトを確認してください (異なる文字列日付形式で動作します)。

SELECT CASE WHEN ISDATE(a.field) = 1 THEN CONVERT (DATETIME, a.field, 101) ELSE NULL END field
FROM (
    SELECT '2012-06-06' as field
    UNION
    SELECT null as field
    UNION
    SELECT '2012-06-06asdad' as field
    UNION
    SELECT '2012/06/06' as field 
) a

CONVERT関数の詳細については、このLINKを確認してください。が有効な日付の場合、関数ISDATEは 1 を返します。

于 2013-06-19T17:54:04.523 に答える