Oracle SQL Извлечение года из VARCHAR2 - PullRequest
1 голос
/ 31 января 2020

Пожалуйста, не жарь меня за то, что я не смог понять это. Я новичок с SQL, и я пытался найти решение и заставить его работать, по крайней мере, пару часов. Я знаю, что поля даты должны храниться как даты, а не как varchar2, но я не имею над этим никакого контроля. за помощь здесь.

Ответы [ 2 ]

3 голосов
/ 31 января 2020

'ENTDAT' является строковым литералом.

ENTDAT (без кавычек) может быть именем столбца.

Так что, если ваше имя столбца ENTDAT, вы, вероятно, хотели:

SELECT *
FROM   your_table
WHERE  EXTRACT ( YEAR FROM ( TO_DATE ( ENTDAT, 'MM/DD/YYYY' ))) = 2018
2 голосов
/ 31 января 2020

Если ваша строка в этом формате, просто используйте like:

where enddate like '%2018'

Конечно, вы должны сохранить дату как date. Тогда вы можете использовать:

where enddate >= date '2018-01-01' and
      enddate < date '2019-01-01'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...