我正在尝试创建一个说
的WHERE子句WHERE column_1 = TRIM(LEADING '20' FROM(DATEPART(year, GETDATE())))
基本上column_1
包含会计年度,但会计年度在数据库中为8或9而不是2008或2009年。
所以我需要找到一种方法来至少修剪'20'
以便查询能够正确运行...动态越好越好,因为我需要将其设置为在SSIS pkg中运行编码越少越好。
有什么建议吗? 提前致谢! 乔恩
答案 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。