Получение проблемы преобразования сообщения 241, уровень 16, состояние 1, строка 33 - PullRequest
0 голосов
/ 26 апреля 2019
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 голосов
/ 26 апреля 2019

Ну, а как насчет использования строк?

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 году. Если нет, вы можете добавить дополнительную логику для обработки более ранних дат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...