как сделать запрос по дате в оракуле - PullRequest
0 голосов
/ 15 февраля 2019

у меня есть дата поля, как этот тип данных = varchar

date
2019.01.01
2019.02.02
01.04.2016

я хочу получить дату данных> = 2019.01.01 я пишу запрос как этот select * from mydb date >= '2019.01.01 результаты все данные.Я хочу, чтобы результат просто
2019.01.01 2019.02.02

Кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

С помощью case для проверки формата даты:

select * from mydb
where 
  case locate('.', date)
    when 3 then to_date(date,'DD.MM.YYYY')
    else to_date(date,'YYYY.MM.DD')
  end >= to_date('2019.01.01','YYYY.MM.DD')

Это относится к случаю, когда существуют только даты в 2 форматах:DD.MM.YYYY и YYYY.MM.DD

0 голосов
/ 15 февраля 2019

Если столбец хранится как дата:

select t1.date -- use the column name (and if it is called "date", use the table name too)
from t1 -- the table name
where t1.date >= to_date('20190101','YYYYMMDD') -- Oracle dates can be funny
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...