问题描述
是否有TRUNCATE(timestamp,?)到秒的格式说明符?以下所有工作:
TRUNC(SYSTIMESTAMP,'MI')
TRUNC(SYSTIMESTAMP,'HH')
TRUNC(SYSTIMESTAMP,'MM')
TRUNC(SYSTIMESTAMP,'YY')
但是TRUNC ( SYSTAMP,'SS')和我尝试过的任何变体都无法使用ORA-01899: bad precision specifier
当然有一些变通方法,但是这比平常更让我发疯,因为文档中似乎没有任何内容,我也没有在Internet上找到任何内容。
谢谢!
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是不合适的。
简单的解决方案:
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




