【问题标题】:how to cut timestamp using Cut command upto a particular point?如何使用剪切命令将时间戳剪切到特​​定点?
【发布时间】:2015-08-26 18:30:58
【问题描述】:

我获取了时间戳 sysibm.sysdummy。如果时间戳是 2015-08-21.23.35.45.45287 ,我只需要将它削减到分钟,即 2015-08-21.23.35。谁能告诉我如何使用 unix 命令来解决这个问题?

【问题讨论】:

  • 您能否提供更多有关您尝试做什么以及如何获取时间戳的上下文?您为什么使用 DB2 而不是 Unix 环境呢?让 DB2 返回所需的部分是否可行?
  • 基本上我将它用于一种自动化,为此它是脚本的一部分,将从 sysibm.sysdummy 获取时间戳,我 hv 将该时间戳缩短到几分钟,然后在一个 db2 命令中再次使用它.我正在使用这个命令:db2 "SELECT current timestamp FROM sysibm.sysdummy1"
  • 那你为什么不写一个存储过程,把整个处理留在DB2里面呢?
  • 我不能,因为我正在研究存储过程的解释计划。

标签: unix timestamp db2 cut


【解决方案1】:

当你想cut它时,使用

echo '2015-08-21.23.35.45.45287' | cut -d"." -f1-3

Cut 可能不是最好的解决方案,请考虑 DB2 表达式 (@data_henrik) 或内置的 shell

a="2015-08-21.23.35.45.45287"; echo ${a:0:16}

【讨论】:

    【解决方案2】:

    DB2 表达式values(substr(timestamp(current timestamp),1,16)) 将返回到分钟的时间戳。它将由 DB2 而非 Unix 提供。

    【讨论】:

    • 这个不工作 :( db2 "SELECT values(substr(timestamp(current timestamp),1,16)) FROM sysibm.sysdummy1" SQL0440N 没有名为“VALUES”的“FUNCTION”类型的授权例程" 找到了兼容的参数。SQLSTATE=42884 我收到了这个错误
    • 试试db2 "values(substr(timestamp(current timestamp),1,16))" - 和db2 "SELECT substr(timestamp(current timestamp),1,16) FROM sysibm.sysdummy1"一样
    • @KalpnaKashyap - 警告,返回的值将根据会话设置进行格式化,如果你不小心可能会产生错误的结果。
    • 你能详细说明一下他的可能性吗?
    猜你喜欢
    • 1970-01-01
    • 2020-09-14
    • 2020-02-16
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多