sql >> データベース >  >> RDS >> Oracle

特定の日付形式の正規表現

    これは悪い考えです。 のみ 日付が正しいことを検証する方法は、日付を日付に変換することです。変換が失敗した場合、それは日付ではありません。成功した場合は、可能性があります なれ。日付は、正規言語では解析するには複雑すぎます。

    したがって、それを日付に変換する関数を作成します。ここにあるよりもはるかに一般的なものにすることができるので、他の目的に再利用できます:

    create or replace function validate_date (
         PDate in varchar2
       , PDateFormat in varchar2
         ) return date is
    begin
       return to_date(PDate, PDateFormat);
    exception when others then
       return null;
    end;
    

    これは、日付と日付の形式が一致することを検証できる場合は日付を返し、それ以外の場合はエラーがある場合はNULLを返します。クエリは次のようになります:

    select 'P' from dual where validate_date('20140506', 'yyyymmdd') is not null
    


    1. NULLの代わりに、SELECTステートメントsqlを使用して結果に「0」を表示するにはどうすればよいですか?

    2. SQL Server(T-SQL)で電話番号をフォーマットする

    3. Postgresqlの切り捨て速度

    4. MySQLデータベースからfancyboxにajaxコンテンツを動的にロードする