Сравните дату с месяцем и годом в SQL server
select * from Performance_tb where format(Perf_Date,'MM/yyyy')='01/2020'
дает отличный результат
но когда я использовал это
select * from Performance_tb where format(Perf_Date,'MM/yyyy')<'01/2020'
- Показывает неверные данные.
МОИ ДАННЫЕ
Perf_Date -------------------------------- 2019-09-11 00:00:00.000 2019-09-12 00:00:00.000 2019-09-14 00:00:00.000 2019-09-15 00:00:00.000 2019-09-16 00:00:00.000 2019-09-17 00:00:00.000 2019-09-18 00:00:00.000 2019-09-19 00:00:00.000 2019-09-20 00:00:00.000 2019-09-21 00:00:00.000 2019-09-22 00:00:00.000 2019-09-23 00:00:00.000 2019-09-24 00:00:00.000 2019-09-25 00:00:00.000 2019-09-26 00:00:00.000 2019-09-27 00:00:00.000 2019-12-19 00:00:00.000 2019-12-20 00:00:00.000 2019-12-22 00:00:00.000 2019-12-23 00:00:00.000 2020-01-03 00:00:00.000 2020-01-04 00:00:00.000 2020-01-06 00:00:00.000 2020-01-07 00:00:00.000 2020-01-08 00:00:00.000 2020-01-09 00:00:00.000 2020-01-31 00:00:00.000 2020-02-01 00:00:00.000 2020-02-06 00:00:00.000 2020-02-07 00:00:00.000 2020-02-08 00:00:00.000 2020-02-17 00:00:00.000 2020-02-25 00:00:00.000 2020-03-01 00:00:00.000 2020-03-02 00:00:00.000 This is my data i want jan month data as well as i want before jan month data both case need to fire same query what can i do sir my parameter is Month/Year i.e. 01/2020 so i want "=01/2020" or "<01/2020"
Что я уже пробовал:
select * from Performance_tb where format(Perf_Date,'MM/yyyy')<'01/2020'
ZurdoDev
Потому что вы преобразуете дату в строку. Не делай этого.
hareshdgr8
сэр как я могу это сделать если мне нужен тот же код просто нужно изменить меньше чем знак или другое вы можете мне предоставить
ZurdoDev
выберите * из Performance_tb, где Perf_Date < '2020-01-01'
hareshdgr8
сэр я не знаю о дне дате только я получаю значение месяца и года из другого источника
ZurdoDev
Да, но вы же хотите что-нибудь до января 2020 года, верно? Итак, это все, что угодно до 2020-01-01 года. Это одно и то же.
Вы также можете сделать
Выберите * из таблицы someTable, где YEAR(DATE) <= YEAR(@someDate) и MONTH(DATE) < MONTH(@someDate)
Но первый способ, скорее всего, лучше в вашем случае.
hareshdgr8
Получение Неправильного Вывода .. с этим, сэр...
ZurdoDev
Тогда просто исправь это. Не знаю, чего ты от нас хочешь. У вас есть простое требование-найти даты, которые предшествуют другой дате. Я думаю, вы делаете его более сложным.
Я дал вам 2 способа сделать это.
hareshdgr8
у меня есть сэр только месяц и год как я могу это исправить
ZurdoDev
Затем используйте функции MONTH() и YEAR (), которые я уже предложил.