【问题标题】:Sap Hana: function like "age" in PostgreSQLSap Hana:PostgreSQL 中类似“年龄”的功能
【发布时间】:2013-09-27 07:33:03
【问题描述】:

SAP HANA 中是否有一个函数与 PostgreSQL 中的age 具有相同的语义,即返回给定时间戳和当前时间戳之间的差异?

我知道

ADD_YEARS(COLUMN_NAME, 2) <= NOW()

在 SAP HANA 中会对应

(extract (year from age( COLUMN_NAME )) <= 2 ) 

在 PostgreSQL 中。不幸的是,这不是我的选择,因为我没有&lt;= 2 的信息。我正在寻找一种将age(COLUMN_NAME) (PostgreSQL) 转换为 SAP HANA 的方法。

有什么想法吗?

【问题讨论】:

    标签: sql hana


    【解决方案1】:

    试试这个:

    SECONDS_BETWEEN(<timeA>, <timeB>)
    

    【讨论】:

    • 不幸的是,通过秒数获取年数并不容易(由于闰年等)
    【解决方案2】:

    在 SPS12 中,YEARS_BETWEEN() 函数可用:

      select years_between(current_date, add_years(current_date, -10)) from dummy;
    

    10

    【讨论】:

      【解决方案3】:

      这对我在 SPS11 中计算年龄很有用:

      if(format(now(), 'MMDD') >= format("DateOfBirth", 'MMDD'),
          int(component(now(), 1)) - int(component("DateOfBirth", 1)),
              if(int(component(now(), 1)) = int(component("DateOfBirth", 1)), 0,
                  int(component(now(), 1)) - int(component("DateOfBirth", 1)) - 1))
      

      【讨论】:

        【解决方案4】:

        select floor(days_between(to_date(timestamp1), to_date(timestamp2))/365) from dummy;

        它会做的伎俩

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-10-31
          • 2020-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多