2012-05-09 4 views
1

У меня есть поле под названием «SALARY ON», в которое введены данные (год-месяц), в формате «2012-01» (тип данных varchar) в таблице с именем Table1.For для создания sp мне нужно возьмите только 2012 из вышеупомянутого поля таблицы. Как я могу это сделать. Пожалуйста, помогите мне решить эту проблему.Gettying Year from another table

ответ

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

Благодарим вас, господин ПЕТЕР, за вашу любезную помощь. Этот ответ отвечает моим требованиям. Спасибо. – Ramdas