0

我想sysdate与我自己的时间连接。以下是我尝试过的查询,但我得到的是年份0016而不是 2016 年。

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

询问:

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

输出:

我的时间

2016 年 3 月 12 日凌晨 02:50:00

4

2 回答 2

4

单程

  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> 
于 2016-03-12T08:31:20.257 回答
0

尝试这个

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

只需更改SYSDATETO_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 

因此。

于 2016-03-12T08:25:10.810 回答