Гм, может быть, я толстая, в голове, но это не похоже, что ОП хочет, чтобы фактически преобразовать NVARCHAR
значение Задан ... он просто хочет, чтобы сравнить месяц и год от NVARCHAR
значения до MONTH()
и YEAR()
фактического DATETIME
значение, и излагается его немного плохо ...
реальный ответ, ИМО , в том, что вы не может конвертировать MM/YYYY самостоятельно в значение DATETIME
, поэтому каждый пытается добавить первый месяц; но почему бы не просто сделать что-то вроде этого ...
SELECT *
FROM <sometable>
WHERE MONTH(<sometable>.<somecolumn>) = LEFT('03/2017',2)
AND YEAR(<sometable>.<somecolumn>) = RIGHT('03/2017',4)
;
И поскольку ОП также задан вопрос о «текущего времени даты, сравнив месяц и только год», вы могли бы сделать ...
SELECT *
FROM <sometable>
WHERE MONTH(GETDATE()) = LEFT(<somecolumn>,2)
AND YEAR(GETDATE()) = RIGHT(<somecolumn>,4)
;
I думаю это то, что он хотел спросить ...? Может быть?
выбрать СУБД, mySQL или SQL Server? – apomene
SQL Server 2008 – Pearl