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

ISNUMERIC('。')が1を返すのはなぜですか?

    IsNumeric()が壊れていますか?を参照してください。ある程度まで。

    SELECT CAST('.' AS MONEY) 
    

    0.00を返します (ただし、intのキャストは失敗します およびfloat

    ISNUMERIC 一般的に役に立たない数値データ型のいずれかに値をキャストできることを確認するだけです。通常、特定のタイプにキャストできるかどうかを知りたいと思います。

    さらに、すべての可能な入力に対してそのタスクを正しく実行していないようです。ISNUMERIC(' ') 0を返します intとmoneyの両方にうまくキャストしたにもかかわらず。逆に、ISNUMERIC(N'8') 1を返します しかし、私が試したものにはうまくキャストできません。

    そのためのいくつかの便利なヘルパー関数は、IsNumeric、IsInt、IsNumberです。

    SQLServer2012ではTRY_PARSEが導入されました およびTRY_CONVERT これは非常に役立ちます。



    1. SQL Serverデータベースを縮小するにはどうすればよいですか?

    2. 給与データモデル

    3. データレプリケーションの目的は何ですか?

    4. mysqlデータベースにスーパー特権を追加する方法は?