title: oracle to_date with format doesn't show time
body: <p>I have simple calculation, I subtract interval from date with time:</p>
  
  <pre><code> select TO_DATE('2016-12-05 23:04:59', 'YYYY-MM-DD HH24:MI:SS')  - to_dsinterval('00 0:05:00') from dual;
  </code></pre>
  
  <p>It works fine, the result: <strong>2016-12-05 22:59:59</strong></p>
  
  <p>but it doesn't work correctly with timezones, so the next approach solves the problem with timezone. I just wrap expression with to_date() one more time</p>
  
  <pre><code>select TO_DATE(
  TO_DATE('2016-12-05 23:04:59', 'YYYY-MM-DD HH24:MI:SS') - to_dsinterval('00 0:05:00')) from dual;
  </code></pre>
  
  <p>but now it turns time to zeros. Result should be: <strong>2016-12-05 22:59:59</strong> but actual: <strong>2016-12-05 00:00:00</strong></p>
  
  <p>If I add format to the outer <strong>to_date</strong> as this:</p>
  
  <pre><code>select to_date( TO_DATE('2016-12-05 23:04:59', 'YYYY-MM-DD HH24:MI:SS') - to_dsinterval('00 0:05:00'), 'YYYY-MM-DD HH24:MI:SS') from dual;
  </code></pre>
  
  <p>The result become very strange: <strong>0005-12-16 00:00:00</strong>
  What I'm doing wrong?</p>