сравнивать дату string с sysdate или current_date

у меня есть проблема, сделав select, который показывал бы мне данные, всякий раз когда конечная дата была превосходящей настоящую ("в других словах, которые он настоящий"), проблема состоит в том, что select ты показываешь мне данные, которые уже не являются настоящими, или что experiraron. это select, который я использую:

select * from UTIC.UZGTFORMULARIOS where UZGTFORMULARIOS_FECHA_FIN >= TO_CHAR(sysdate,'DD/MM/RRRR')

поле UZGTFORMULARIOS_FECHA_FIN - тип varchar и дата сохраняет со следующим форматом DD / ММ / RRRR

introducir la descripción de la imagen aquí поскольку они будут видеть, ты показываешь мне даты месяца, который произошел, и select был бы должен показывать только даты сегодняшнего дня для вперед. какая-то рекомендация

1
задан 05.11.2019, 18:48
2 ответа

EstГЎs сравнивая цепи с цепями (CHAR)... Это одинокое harГЎ одна comparaciГіn alfabГ©ticamente (alfanumГ©ricamente???), но дата не может сравниваться asГ - правильно.

DeberГ-Схвати использовать

TO_DATE(UZGTFORMULARIOS_FECHA_FIN) >= TRUNC(sysdate) 

Вместо того, чтобы перемещать sysdate CHAR, ты это оставляешь как Ваш тип, который ВОСХОДИТЕ, и ты это сравниваешь с другой колонной, после перемещая ее DATE.

TRUNC опциональный, служит для того, чтобы он только имел в виду дату, не час.

0
ответ дан 01.12.2019, 12:40
  • 1
    intenté поскольку ты рекомендовал меня со следующим select: select * from UTIC.UZGTFORMULARIOS where TO_DATE (UZGTFORMULARIOS_FECHA_FIN) > = TRUNC (sysdate), но у меня выходит следующая ошибка: ORA-01861: буквальный не встречается с цепью формата – Kenny Andres Cruz Garcia 05.11.2019, 19:10
  • 2
    Которое está в другом ответе он правилен. Обычно у меня есть из-за default маска в 'dd/mm/yyyy', плохая mí в. Если это также не функционирует, вероятно, что у тебя есть по крайней мере реестр, который не выполняет этот формат даты, и это (s) deberí схвати исправлять – DannyTalent 05.11.2019, 22:34

ВїEstГЎ уверенный в колонне UZGTFORMULARIOS_FECHA_FI он типа VARCHAR2?

, Если он asГ - должен использовать второго parГЎmetro ее funciГіn TO_DATE , чтобы показывать, как это string даты. Когда не используется второй parГЎmetro, тогда Oracle использует формат, что estГ© определенный для нее sesiГіn с, которая conectГі, и что зависит от переменной атмосферы NLS_LANG.

TO_DATE(UZGTFORMULARIOS_FECHA_FIN,'dd/mm/yyyy') >= TRUNC(sysdate)
0
ответ дан 01.12.2019, 12:40