преобразование строки в определенный формат даты в sql - PullRequest
0 голосов
/ 04 мая 2018
trunc(to_date('datefield1','mm/dd/yyyy hh24:mi:ss')) 
between
trunc(to_date(to_char('05/18/2016 08:57','mm/dd/yyyy hh24:mi:ss'),'mm/dd/yyyy,hh24:mi:ss'))
and 
trunc(to_date(to_char('05/20/2016 08:57','mm/dd/yyyy hh24:mi:ss'),'mm/dd/yyyy,hh24:mi:ss')); 

Мне нужно преобразовать строку '05 / 18/2016 08:57 'в дату

1 Ответ

0 голосов
/ 04 мая 2018

Почему вы конвертируете строку символов в строку символов? Вы можете сделать:

trunc(to_date(datefield1, 'mm/dd/yyyy hh24:mi:ss'))
    between trunc(to_date('05/18/2016 08:57', 'mm/dd/yyyy hh24:mi:ss'), 'mm/dd/yyyy,hh24:mi:ss') and 
            trunc(to_date('05/20/2016 08:57', 'mm/dd/yyyy hh24:mi:ss'), 'mm/dd/yyyy hh24:mi:ss'); 

Очень странно иметь hh24:mi:ss, когда у самой строки нет секунд. Но Oracle это позволяет.

Тем не менее, я бы написал логику как:

datefield1 >= date '2016-05-18' and
datefield1 < date '2016-05-21'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...