質問

って保存されている手順がそのパラメータは、 varchar する必要のあるキャストとして datetime 使用:

SET @the_date = CAST(@date_string AS DATETIME)

私の日付文字列を供給することができます、フォーマット"DD-月-YYYY"が、全コードは守備面で何らかの理由により、あなたはできなくなキャストに成功したいデフォルトのシステム日付入れてください。にPL/SQLを使うことがで例外処理を実現するとして、予想以上に興味深いことかなり簡単に正規表現ものに限パターンマッチング支援により開発しないようこやまだひさしをはじめとする信頼を第三者に図書館または拡張子.ある単純ないということは、T-SQL?

※使用Sybase ASE12.5.3ありませんISDATE機能

役に立ちましたか?

解決

ん類似の課題です。ることができるかもしれませんようになります:

SET arithabort arith_overflow off
SET @the_date = CAST(@date_string AS DATETIME)
IF @the_date is NULL
    set @the_date = getdate()
SET arithabort arith_overflow on

しかし、これがうまくいっていません、選択され画面が変更されますでも、カーソル(boo)またはロジックの前後にSQLです。

他のヒント

私の良さがは、Microsoft SQLサーバーしていた。

Sybase、悲し、全体りデータベースは、今日これから約1997年、実際には、与えられています。

の場合は入力フォーマットです'DD-月-YYYY"と例外ではない、と思うには相当なけた検証を実現するスライスに入力SUBSTR()の後に初めての簡単なものなどを確認さい。

と思った最近のリリースSybase SQLでは11例して正規表現支援、それには、微力ですが、応援させていただきていたのがT-SQL.一部のgooglingないといけないのになりますよね。

そういうこだわった転がります。

きょうの利用 この ります。

なんとかならんのかのようになります:

SELECT @the_date = CASE @date_string
                      WHEN '[0-9][0-9]-[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]'
                      THEN CONVERT(datetime, @date_string)
                      ELSE GETDATE()
                   END

?

この結果 Google検索する場合は、"検証日付文字列のsql".

----Invalid date
SELECT ISDATE('30/2/2007')
RETURNS : 0 (Zero)
----Valid date
SELECT ISDATE('12/12/20007')
RETURNS : 1 (ONE)
----Invalid DataType
SELECT ISDATE('SQL')
RETURNS : 0 (Zero)

くまさにSQLサーバーにあるこの順に、日、月、年に文字列を実行

SET DATEFORMAT mdy;

ただ convert の代わりに cast?

select convert( datetime , @date_string ) 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top