私は、何らかの理由でdatetimeの代わりにvarcharとして格納されている日付を持つ1つの列を持つ従来のSQL Server 2000データベースを持っています。私はこのデータに対してビューを作成し、フィールドに対してレポートを作成しやすくするためにvarcharの代わりにdatetimeフィールドを使用したいと考えています。良いことは、の値のうちがdatetimeに直接キャストできなければならないように見えることです。varchar値がdatetimeにキャストできない行のリストを取得できますか?
もちろん、datetimeにキャストできないように入力されたフィールドもあります。
CREATE TABLE dbo.user
(
...
birthdate varchar(10)
...
)
を、ビューは次のようになります::ちょうど明瞭のために、ここにテーブルが見ることができる方法です
CREATE VIEW dbo.UserView
AS
SELECT ...
CAST(u.birthdate AS datetime) AS birthdate
...
FROM user u
WHERE ...
は私がすることができますどのような方法があります:
- ゲット私がそれを修復することができる場合に、誕生日をdatetimeにキャストできないすべての行のリスト?
- 値を修復できない場合は、値がNULLか明らかに何かに表示されるようにしてください。本当の誕生日ですか?
小さなことですが、良い点です!= 0ではなく1です。この特定の関数は常に1または0を返しますが、多くの関数はNULL入力に対してNULLを返します。成功結果を具体的にテストするのは良い習慣です。 –
+1と私の質問に私を打ち負かすとジョエルのコメント。 –
@Joel Coehoorn:NULL = 0も真ではないので、問題はありません – wqw