3

datetime列がとして作成された古いテーブルがあり、varcharこのテーブルにデータを挿入するフォームは検証/制限のないフリーフォームでした。フォームを修正し、データを正規化する作業に取り掛かりました。すべてのレコードをこの列にクエリする必要がありますCASTdatetime

例:

9/30/2008
9/30/13
august 2010
5/11
30SEP12
31-Mar-2011
2005

私はすでにN/AデータをクリーンアップしましたNULLが、有効な日付とは見なされないすべてのものを効率的に取得する方法がわかりません。datetimeこの列をデータ型に変換するには、レコードごとに処理する必要がありますか?

4

1 に答える 1

6

ISDATE日付ではないレコードを特定するために使用できます。

SELECT *
FROM YourTable
WHERE isdate(OldDateField) = 0

以下のクエリを使用して、日付にならないものを確認できます。

SELECT isdate('9/30/2008')
SELECT isdate('9/30/13')
SELECT isdate('august 2010')
SELECT isdate('5/11')
SELECT isdate('30SEP12')
SELECT isdate('31-Mar-2011 2005')
于 2012-07-19T20:42:08.940 に答える