8

ISDATE列を検証するために呼び出される関数があることは知っていますが、それはとタイプDATETIMEに対してのみ機能します。SMALLDATETIMEDATETIME

DATETIME2SQL Server 2008および2012で新しいデータ型を検証する同様の方法はありますか?

4

2 に答える 2

17

SQL Server 2012 では、以下を使用できますTRY_CONVERT

SELECT TRY_CONVERT(DATETIME2, '2012-02-02 13:42:55.2323623'),
       TRY_CONVERT(DATETIME2, '2012-02-31 13:42:55.2323623');

結果:

2012-02-02 13:42:55.2323623    NULL

またはTRY_PARSE:

SELECT TRY_PARSE('2012-02-02 13:42:55.2323623' AS DATETIME2),
       TRY_PARSE('2012-02-31 13:42:55.2323623' AS DATETIME2);

(同じ結果です。)

申し訳ありませんが、SQL Server 2012 未満の場合は、適切な回答が得られません。

SELECT ISDATE(LEFT('2012-02-02 13:42:55.2323623', 23));

でも汚い感じです。

TRY_CONVERTMicrosoft Docs
TRY_PARSEのドキュメント Microsoft Docs のドキュメント

于 2012-06-15T02:46:17.200 に答える