【问题标题】:in the DB2 sql procedure - select query result - if condition - substringDB2 sql过程中——选择查询结果——if条件——子串
【发布时间】:2012-05-16 03:23:32
【问题描述】:

我正在编写一个 db2 过程。 我的选择查询结果有我必须比较的日期时间。

日期格式 20120507 时间格式 111111

我计划将两者连接并比较为整数。这是正确的比较方式吗?

但如果它小于 10,则该值将类似于 71111 .. 在这些情况下,我计划在 time 之前附加 0 并连接和比较。

我可以在单个语句中执行此操作吗?

select dbdate,  if   LENGTH(trim(dbtime))=7   then  '0'||dbtime into newtime   from tablename

【问题讨论】:

  • 不,永远不要将日期/时间作为整数进行比较,将它们作为正确的数据类型进行比较(除非在某些 OLAP 系统中专门使用日历表)。您的数据实际上是存储为整数(或字符串),还是您查询的结果?你需要做什么样的比较?

标签: sql db2 substring procedure


【解决方案1】:

尝试使用TIMESTAMP 标量函数

 select  TIMESTAMP(dbdate, dbtime)

这为您提供了可用于比较操作的 db/2 时间戳。在进行比较之前,最好将所有日期/时间值转换为时间戳,然后根据需要将truncateround 转换为时间戳。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多