暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle TRUNC的格式(时间戳, <秒> )

askTom 2016-10-19
302

问题描述

是否有TRUNCATE(timestamp,?)到秒的格式说明符?以下所有工作:

TRUNC(SYSTIMESTAMP,'MI')
TRUNC(SYSTIMESTAMP,'HH')
TRUNC(SYSTIMESTAMP,'MM')
TRUNC(SYSTIMESTAMP,'YY')

但是TRUNC ( SYSTAMP,'SS')和我尝试过的任何变体都无法使用ORA-01899: bad precision specifier

当然有一些变通方法,但是这比平常更让我发疯,因为文档中似乎没有任何内容,我也没有在Internet上找到任何内容。

谢谢!

专家解答

如果您查看SQL文档,您会发现实际上*不存在一个用于时间戳的trunc命令。所以实际上发生的是:

a)您的时间戳正在无提示地转换为*date*
b) trunc命令正在应用于您的日期

因此SS是不合适的。

简单的解决方案:

SQL> select systimestamp ts, cast(systimestamp as date) truncd_to_secs from dual;

TS                                                                          TRUNCD_TO_SECS
--------------------------------------------------------------------------- -------------------
20-OCT-16 09.47.21.505000 AM +08:00                                         20/10/2016 09:47:21


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论