消息241,级别16,状态1,第33行的转换问题

时间:2019-04-26 16:45:16

标签: sql sql-server tsql

MonthFormate time
    Apr-18  14.53
    May-18  1.78
    Jun-18  7.33
    Jul-18  10.00
    Aug-18  46.76
    Sept-18 23.64
    Oct-18  41.34
    Nov-18  NULL
    Dec-18  NULL
    Jan-19  134.80
    Feb-19  1.69
    Mar-19  98.06

获取当前年份

 select *
 from #ResultData 
 WHERE YEAR(CONVERT(date, '01-' + Monthformat)) = YEAR(GETDATE()) - 1;

获取上一年

select *
from #ResultData 
WHERE YEAR(CONVERT(DATE, '01-' + Monthformat)) = YEAR(GETDATE()) 
  AND MONTH(CONVERT(DATE, '01-' + Monthformat)) <= MONTH(GETDATE());

1 个答案:

答案 0 :(得分:0)

那么,如何使用字符串呢?

select rd.*
from #ResultData rd
where '20' + right(monthformat, 2) = datename(year, getdate())

以及上一年:

where '20' + right(monthformat, 2) = datename(year, dateadd(year, -1, getdate()))

假定日期是2000年以来的。如果不是,则可以添加其他逻辑来处理更早的日期。