Ошибка SQL-запроса Oracle при сравнении столбцов даты - PullRequest
0 голосов
/ 14 декабря 2010

У меня есть следующий SQL-запрос Oracle, в котором START_DATE - это числовой столбец, a_date - это тип DATE, а входное значение также имеет тип DATE. пожалуйста, дайте мне знать, как сравнить столбцы с датой ввода.

select a.id ,a.v ,b.id,b.v  
 from DATA a ,FDC  b  where a.START_DATE = to_date('11-DEC-10','YYYYMMDD')
 and a.START_DATE = b.a_date and b.code = 'JFK'

Ответы [ 4 ]

2 голосов
/ 14 декабря 2010
select a.id ,a.v ,b.id,b.v  
 from DATA a ,FDC  b  where a.START_DATE LIKE TO_DATE('11-DEC-10','DD-MON-YY')
 and a.START_DATE = b.a_date and b.code = 'JFK'

Если вы сохранили START_DATE в виде числа, например 'YYYYMMDD':

a.START_DATE=TO_NUMBER(TO_DATE('20101211','YYYYMMDD'))
0 голосов
/ 14 декабря 2010

Это полностью зависит от того, в каком формате хранится ваш номер столбца start_date.

Однако, вероятно, было бы проще, если бы вы использовали предикат в столбце истинной даты и присоединились, используя маску формата только один раз.

Например:

SELECT a.id,
       a.v, 
       b.id,
       b.v  
  FROM data a, 
       fdc b
 WHERE b.a_date = to_date('11-DEC-2010','DD-MON-RRRR')
   AND a.start_date = TO_NUMBER(TO_CHAR(b.a_date, 'DDMMRRRR'))
   AND b.code = 'JFK'

Обратите внимание, что формат даты соответствует формату сравниваемой даты - b.a_date = to_date('11-DEC-2010','DD-MON-RRRR'). В этом запросе предполагается, что столбец a.start_date хранится в формате DDMMRRRR. Вам необходимо изменить это для любого формата, в котором ваша дата хранится, например, в. a.start_date = TO_NUMBER(TO_CHAR(b.a_date, 'J')) для юлианской даты.

P.s. Зачем использовать номер для хранения даты?

0 голосов
/ 14 декабря 2010

select * from tbltlcrconfighistory где STARTDATE = TO_DATE ('14 -dec-2010 ',' dd-mon-yyyy ');

0 голосов
/ 14 декабря 2010

select * from tbltlcrconfighistory, где TO_DATE (STARTDATE, 'dd-mon-yyyy') = TO_DATE ('14 -dec-2010 ',' dd-mon-yyyy ');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...