как вставить SQL-запрос внутри строки

#sql #oracle #date #oracle-sqldeveloper

#sql #Oracle #Дата #oracle-sqldeveloper

Вопрос:

у меня есть эти два запроса.

  1. to_char(to_date('1970-01-01 **1:00:00**', 'yyyy-mm-dd hh24:MI:SS') NET_START.STARTPROC/1000/60/60/24, 'yyyy-mm-dd hh24:MI:SS') as STARTPROC;
  2. SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual

запрос 2 возвращает строку, содержащую 1:00:00, и я хотел бы использовать этот запрос внутри запроса 1 для замены выделенного 1:00:00.

что-то вроде этого

to_char(to_date('1970-01-01 (SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual)’, 'yyyy-mm-dd hh24:MI:SS') NET_START.STARTPROC/1000/60/60/24, 'yyyy-mm-dd hh24:MI:SS') as STARTPROC

Ответ №1:

Oracle используется || для подключения строки

 to_date('1970-01-01'||(SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual), 'yyyy-mm-dd hh24:MI:SS')
 

попробуйте это.

Комментарии:

1. Должно быть '1970-01-01 ' (с пробелом)

2. упс. это опечатка. но я почти уверен, что OP поймет, что это значит.

Ответ №2:

Вы можете просто использовать || оператор без запроса следующим образом:

 to_char(to_date('1970-01-01 ' || TO_CHAR(SYSTIMESTAMP, 'tzr') , 'yyyy-mm-dd hh24:MI:SS') 
  NET_START.STARTPROC/1000/60/60/24, 'yyyy-mm-dd hh24:MI:SS') as STARTPROC;