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

时间:2016-03-12 07:47:48

标签: oracle date-arithmetic sysdate

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

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

查询:

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

输出:

数值指明MyTime

3/12/0016 02:50:00 AM

2 个答案:

答案 0 :(得分:4)

单程

  1. 将SYSDATE转换为字符串
  2. 附加固定时间元素
  3. 转换回日期
  4. 完全像这样:

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

    替代方式:使用算术。

    1. 从SYSDATE
    2. 中删除实时
    3. 添加秒数((60*60*2)+(50*60)/(60*60*24)
    4. 是否包括您的工作:

      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> 
      

答案 1 :(得分:0)

试试这个

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 

结果。

相关问题