在oracle中将sysdate与固定时间连接起来

concatenating sysdate with fixed time in oracle

我想把sysdate和我自己的时间串联起来。以下是我尝试过的查询,但我得到的年份是 0016 而不是 2016.

还有其他方法可以得到如下结果吗?

查询:

select to_date(sysdate || ' 02:50:00','dd-mon-yyyy hh24:mi:ss') as MyTime from dual

输出:

我的时光

3/12/001602:50:00上午

试试这个

SELECT TO_DATE(TO_CHAR(SYSDATE, 'DD-MON-YYYY') || ' 08:00:00', 'DD-MON-YYYY HH:MI:SS') FROM DUAL;

只要把SYSDATE改成TO_CHAR(SYSDATE, 'DD-MON-YYYY')

我这样做了:

SELECT TO_CHAR(
  TO_DATE(TO_CHAR(SYSDATE, 'DD-MON-YYYY') || ' 08:00:00', 'DD-MON-YYYY HH:MI:SS')
,'DD-MON-YYYY HH:MI:SS') from dual;

得到了

12-MAR-2016 08:00:00 

结果。

一种方式

  1. 将 SYSDATE 转换为字符串
  2. 附加您的固定时间元素
  3. 转换回日期

完全这样说:

to_date(to_char(sysdate,'YYYY-MM-DD')||' 02:50:00','YYYY-MM-DD HH24:MI:SS' ) 

替代方法:使用算术。

  1. 从 SYSDATE 中去除实时
  2. 添加秒数((60*60*2)+(50*60)/(60*60*24)

是否包括你的作品:

trunc(sysdate) + ( 10200 / 86400)

还有第三种方法:使用 INTERVAL(基本上是第二种方法的变体)。

SQL> select trunc(sysdate) + to_dsinterval('0 02:50:00') as mytime
  2  from dual
  3  /

MYTIME
------
2016-03-12 02:50:00

SQL>