在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
结果。
一种方式
- 将 SYSDATE 转换为字符串
- 附加您的固定时间元素
- 转换回日期
完全这样说:
to_date(to_char(sysdate,'YYYY-MM-DD')||' 02:50:00','YYYY-MM-DD HH24:MI:SS' )
替代方法:使用算术。
- 从 SYSDATE 中去除实时
- 添加秒数
((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>
我想把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
结果。
一种方式
- 将 SYSDATE 转换为字符串
- 附加您的固定时间元素
- 转换回日期
完全这样说:
to_date(to_char(sysdate,'YYYY-MM-DD')||' 02:50:00','YYYY-MM-DD HH24:MI:SS' )
替代方法:使用算术。
- 从 SYSDATE 中去除实时
- 添加秒数
((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>