2012-05-09 36 views
1

我有一個名爲'SALARY ON'的字段,其中輸入的數據(年 - 月)格式爲'2012-01'(數據類型varchar)名爲Table1.表中創建sp我需要僅從上述表格領域獲得2012。我怎樣才能做到這一點。 請幫我解決這個問題。Gettiing Year from another表

回答

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 

然後,您可以採取一切返回-1年和引發錯誤給用戶,過濾出來,寫他們到一個日誌文件等,這取決於sp被調用的環境。

+0

謝謝Mr.PETER爲您提供幫助。此答案符合我的要求。謝謝。 – Ramdas