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

然后,您可以将所有年份返回为 -1 并向用户提出错误,将它们过滤掉,将它们写入日志文件等,具体取决于调用 sp 的环境。

于 2012-05-09T06:49:30.983 回答