我只想比较月份和年份。所以我将它转换为varchar。这是对的吗?
(case
when s."AccMonth" >= 1 and s."AccMonth" <= 12
then cast(rtrim(s.accmonth) + s.accyear AS varchar) end)
>=
cast(month(s.InitialChargeDate) as varchar) + cast(year(s.InitialChargeDate) as varchar)
accmonth
&amp; accyear
类型为INT
InitialChargeDate
的类型为DATE
答案 0 :(得分:2)
或许更好的方法是:
s.AccMonth = MONTH(s.InitialChargeDate)
AND s.accyear = YEAR(s.InitialChargeDate)
注意:在没有长度规范的情况下转换为varchar时,默认长度为1.这可能会影响您的结果。
答案 1 :(得分:0)