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

SQL ServerのISDATE()の例

    SQL Serverでは、ISDATE()を使用できます。 値が有効な日付であるかどうかをチェックする関数。

    具体的には、この関数は値が有効な日付であるかどうかのみをチェックします 、時間 、または日時 値ですが、 datetime2 ではありません 価値。 datetime2を指定した場合 値、ISDATE() 日付ではないことが通知されます(0が返されます) 。

    この記事には、この関数の例が含まれています。

    構文

    まず、構文は次のとおりです。

    ISDATE ( expression )

    expressionの場所 テストする式です。

    例1-有効日

    有効な式を使用した例を次に示します。

    SELECT ISDATE('2000-01-01') AS Result;

    結果:

    +----------+
    | Result   |
    |----------|
    | 1        |
    +----------+

    これは1を返します 、つまり、有効な日付時間 、または日時 値。

    例2–無効な日付

    無効な式を使用した例を次に示します。

    SELECT ISDATE('2000-01-01 00:00:00.0000000') AS Result;

    結果:

    +----------+
    | Result   |
    |----------|
    | 0        |
    +----------+

    これは0を返します 、つまり、有効な日付ではありません 、時間 、または日時 値。

    例3–戻り値の使用

    条件ステートメントを使用して、(単に0を表示するのではなく、戻り値を利用できます。 または1

    有効な日付を単純に印刷する基本的な例を次に示します。 または無効な日付 、戻り値が1であるかどうかによって異なります または0

    IF ISDATE('2000-01-01') = 1  
        PRINT 'Valid Date'  
    ELSE  
        PRINT 'Invalid Date';

    結果:

    Valid Date

    例4–言語設定

    ISDATE()の戻り値 LANGUAGEによって異なります およびDATEFORMAT 設定。

    これは、LANGUAGEに応じて同じ値が異なる結果を返す方法を示す例です。 使用した設定。

    イギリス

    SET LANGUAGE British;
    SELECT ISDATE('20/01/2000') AS '20/01/2000 in British';

    結果:

    Changed language setting to British.
    +-------------------------+
    | 20/01/2000 in British   |
    |-------------------------|
    | 1                       |
    +-------------------------+

    us_english

    SET LANGUAGE us_english;
    SELECT ISDATE('20/01/2000') AS '20/01/2000 in us_english';

    結果:

    Changed language setting to us_english.
    +----------------------------+
    | 20/01/2000 in us_english   |
    |----------------------------|
    | 0                          |
    +----------------------------+
    

    これは、Britishが原因で発生します dd / MM / yyyyを使用します us_englishでフォーマットする MM / dd / yyyを使用します 。

    例5–DATEFORMAT設定

    前述のように、ISDATE()の戻り値 DATEFORMATにも依存します 設定。

    これは、DATEFORMATに応じて同じ値が異なる結果を返す方法を示す例です。 使用した設定。

    dmy

    SET DATEFORMAT dmy;
    SELECT ISDATE('20/01/2000') AS '20/01/2000 while DATEFORMAT is dmy';

    結果:

    +--------------------------------------+
    | 20/01/2000 while DATEFORMAT is dmy   |
    |--------------------------------------|
    | 1                                    |
    +--------------------------------------+

    mdy

    SET DATEFORMAT mdy;
    SELECT ISDATE('20/01/2000') AS '20/01/2000 while DATEFORMAT is mdy';

    結果:

    +--------------------------------------+
    | 20/01/2000 while DATEFORMAT is mdy   |
    |--------------------------------------|
    | 0                                    |
    +--------------------------------------+
    


    1. MySQLユーザーパスワードの変更

    2. SQLServerエラー-COMコンポーネントの呼び出しからHRESULTE_FAILが返されました

    3. PostgreSQLの高可用性の管理–パートI:PostgreSQLの自動フェイルオーバー

    4. PostgreSQLでの数値フォーマット用のテンプレートパターンと修飾子