[英]How to truncate timestamp to minutes?
我必须从当前时间戳和楼层(截断)减去5分钟到最近的分钟。 比如'2016-02-23 06:10:39.0'应该是'2016-02-23 06:05:00.0'。 我已经找到了减去5分钟的方法
systimestamp - interval '5' minute
编辑1:我需要特定格式的时间戳,
TO_TIMESTAMP((systimestamp - interval '15' minute),'YYYY-MM-DD HH24:MI:SS.ff')
但这是给予的
ORA-01830: date format picture ends before converting entire input string
但是我无法把它放到最近的一分钟。 请帮忙。 谢谢
您可以使用所需精度的TRUNC() 。 要仅截断几分钟,请使用MI
。
例如,
SQL> SELECT SYSTIMESTAMP, trunc(SYSTIMESTAMP - INTERVAL '5' MINUTE, 'MI') new_tmstmp
2 FROM dual;
SYSTIMESTAMP NEW_TMSTMP
----------------------------------- -------------------
16-MAR-16 04.44.02.379000 PM +05:30 03/16/2016 16:39:00
SQL>
请记住,上面的输出将是DATE而不是TIMESTAMP 。 您可以显式转换 date
为timestamp
:
SQL> SELECT SYSTIMESTAMP,CAST(trunc(SYSTIMESTAMP - INTERVAL '5' MINUTE,'MI') AS TIMESTAMP) tm
2 FROM dual;
SYSTIMESTAMP TM
----------------------------------- ------------------------------
16-MAR-16 04.53.25.802000 PM +05:30 2016-03-16 04:48:00.000000
SQL>
你可以使用trunc()
:
trunc(systimestamp - interval '5' minute, 'minute')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.