1

「SALARY ON」という名前のフィールドがあり、入力されたデータ (年-月) は「2012-01」(データ型 varchar) という形式で、Table1 という名前のテーブルにあります。SP を作成するには、上記のテーブル フィールドから 2012 のみを取得する必要があります. これどうやってするの。これを解決するのを手伝ってください。

4

1 に答える 1

1

最も単純なケースでは、'SUBSTRING' と 'CAST' がそれを行います:

SELECT CAST(SUBSTRING([SALARY ON], 1, 4) AS INT) FROM SALARY

これは、日付が YYYY-MM の形式で入力されていることに依存します。これを制約でチェックしている場合は、上記のサンプルで問題ありません。それ以外の場合は、変換する前にパターン チェックを行う必要があります。

SELECT CASE WHEN [SALARY ON] LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9]' THEN SUBSTRING([SALARY ON], 1, 4) AS INT) ELSE -1 END

次に、sp が呼び出された環境に応じて、返されたすべての年を -1 として取得し、ユーザーにエラーを発生させたり、フィルターで除外したり、ログ ファイルに書き込んだりできます。

于 2012-05-09T06:49:30.983 に答える