なんらかの理由で日時ではなくvarcharとして格納されている日付を持つ1つの列を持つレガシーSQLServer2000データベースがあります。このデータに対してビューを作成し、varcharの代わりに日時フィールドを使用して、フィールドに対するレポートを簡単に作成したいと思います。幸いなことに、ほとんどの値は、日時に直接キャストできるはずのように見えます。
もちろん、日時にキャストできないように入力されたフィールドもあるようです。わかりやすくするために、テーブルは次のようになります。
CREATE TABLE dbo.user
(
...
birthdate varchar(10)
...
)
そして、ビューは次のようになります。
CREATE VIEW dbo.UserView
AS
SELECT ...
CAST(u.birthdate AS datetime) AS birthdate
...
FROM user u
WHERE ...
私ができる方法はありますか:
- 修復できる場合に備えて、誕生日を日時にキャストできないすべての行のリストを取得しますか?
- 値を修復できない場合は、値をNULLとして表示するか、明らかにユーザーの実際の誕生日ではないものとして表示するようにしますか?