从GETDATE年份开始修剪前两个字符()

时间:2009-04-09 13:33:52

标签: sql-server tsql datetime

我正在尝试创建一个说

的WHERE子句
WHERE column_1 = TRIM(LEADING '20' FROM(DATEPART(year, GETDATE())))

基本上column_1包含会计年度,但会计年度在数据库中为8或9而不是2008或2009年。

所以我需要找到一种方法来至少修剪'20'以便查询能够正确运行...动态越好越好,因为我需要将其设置为在SSIS pkg中运行编码越少越好。

有什么建议吗? 提前致谢! 乔恩

4 个答案:

答案 0 :(得分:6)

而不是修剪,使用模数:

...
WHERE column_1 = (YEAR(GETDATE()) % 100)

答案 1 :(得分:1)

取决于column_1的数据类型

print right(datepart(year,getdate()),2) - 带前导零的字符串 print convert(int,right(datepart(year,getdate()),2)) - int

修改

基于@ Richard的回答
print datepart(year,getdate())%100

答案 2 :(得分:0)

是否存在仅打印年份最后2位数的转换格式?

答案 3 :(得分:0)

如果您的专栏保证引用年份> = 2000且< 2100年,那么你会得到相当明显的:

SELECT YEAR(GETDATE()) - 2000

但是......老实说,在生产环境中看到这样的代码会让我哭泣。那只是WTF,imo。