Пожалуйста, не жарь меня за то, что я не смог понять это. Я новичок с SQL, и я пытался найти решение и заставить его работать, по крайней мере, пару часов. Я знаю, что поля даты должны храниться как даты, а не как varchar2, но я не имею над этим никакого контроля. за помощь здесь.
'ENTDAT' является строковым литералом.
'ENTDAT'
ENTDAT (без кавычек) может быть именем столбца.
ENTDAT
Так что, если ваше имя столбца ENTDAT, вы, вероятно, хотели:
SELECT * FROM your_table WHERE EXTRACT ( YEAR FROM ( TO_DATE ( ENTDAT, 'MM/DD/YYYY' ))) = 2018
Если ваша строка в этом формате, просто используйте like:
like
where enddate like '%2018'
Конечно, вы должны сохранить дату как date. Тогда вы можете использовать:
date
where enddate >= date '2018-01-01' and enddate < date '2019-01-01'