【发布时间】:2016-07-02 05:20:39
【问题描述】:
我必须从当前时间戳中减去 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
但我无法将它降到最近的分钟。 请帮忙。谢谢
【问题讨论】:
-
select TO_TIMESTAMP(trunc(SYSTIMESTAMP - INTERVAL '5' MINUTE, 'MI'),'YYYY-MM-DD HH24:MI:SS.ff') from dual;每当我执行时,此查询都会给出 16-MAR-16 12.00.00.000000000 AM
-
DATE和TIMESTAMP数据类型没有任何格式。如果您想要一个格式化的值,那么您需要使用TO_CHAR()并将其转换为字符串,或者您可以使用NLS_TIMESTAMP_FORMAT参数设置SQL 客户端的默认格式。如果您想截断日期/时间,请使用TRUNC()。 -
@Jaydeep
TRUNC()timestamp将返回date。因此,如果您希望输出为时间戳,则将日期显式转换为时间戳。 -
谢谢。 CAST 就像一个魅力
标签: sql oracle timestamp timestamp-arithmetic