2017-06-01 13 views
0

生年月日形式の列にSQL Serverがyyyymmddを持つかどうかを確認する方法は?生年月日形式の列にSQL Serverがyyyymmddを持つかどうかをチェックする方法は?

+0

*文字フィールドを確認する方法を尋ねています*は有効なyyyymmddですか?使用しているMSSQLのバージョンを追加してください。 –

+0

これまで実装しようとしたことはありますか? – quinz

+0

具体的にお願いします。あなたの質問はあまり明確ではありません。 –

答えて

1

のように、あなたはISDATE関数で確認することができますが、列はchar型(不潔)であれば、私はあなたが

select ISDATE (1) 
------------------ 
0 
select ISDATE (11111111) 
------------------ 
0 
select ISDATE (20170501) 
------------------ 
1 
+2

しかし、SELECT IsDate( '2017-05-01')も1と書かれています。私はOPがYYYYMMDD形式であるかどうかを調べるために探しています... –

+1

はい、このような有効な日付を識別します。ISDATE ('01/05/2015 ')。 – Krismorte

0

持っていないどのSQL版分かりません「[ 12] [0-9] [0-9] [0-9] [0-1] [0-9] [0-3] [0-9] '(私の頭の上から外す)

それがDateTimeなら誰が気にするのか、それは日付です。

1

あなたは使用することができます。

select (case when try_convert(date, dob) is not null and 
        try_convert(int, dob) is not null 
      then 1 else 0 
     end) 

私は100%わからないんだけど、私はYYYYMMDDは一般的に両方の条件に合格するだけの形式だと思います。注:20170601が本当に6月1日か1月6日かを知る方法はないので、実際にはフィールドの内容を検証することはできません。

しかし、あなたはそれを日付に変換することができる限り、フォーマットが何であるか気にしますか?その後、列を日付タイプに変更する必要があります。そのため、「フォーマット」が正しいことがわかります。

関連する問題