资讯专栏INFORMATION COLUMN

如何计算CDS view里两个时间戳之间的天数间隔

selfimpr / 755人阅读

摘要:透明表里的时间戳,数据类型为有个需求计算这两个时间戳之间的天数间隔,丢弃时间戳年月日位后面的小时分钟秒。直接用的字符串操作函数是不行的,因为时间戳类型和期待的字符串类型不匹配。

ABAP透明表里的时间戳,数据类型为dec:

有个需求:计算这两个时间戳之间的天数间隔,丢弃时间戳年-月-日8位后面的小时:分钟:秒。

举个例子:如果时间戳是20180918173132,丢弃173132,只保留20180918, 然后再计算天数间隔。

直接用CDS view的字符串操作函数substring是不行的,因为时间戳类型dec和substring期待的字符串类型不匹配。

解决方案:

先将时间戳字段类型从dec强制转换成abap.dats:

@AbapCatalog.sqlViewName: "zproday"

@AbapCatalog.compiler.compareFilter: true

@AccessControl.authorizationCheck: #CHECK

@EndUserText.label: "Day between"

define view zdate_day_between as select from comm_product {

key comm_product.product_id as prod_id,

comm_product.product_guid as prod_guid,

comm_product.valid_from as valid_from,

comm_product.valid_to as valid_to,

cast(substring(cast(valid_from as abap.char(32)),1,8) as abap.dats) as from_date,

cast(substring(cast(valid_to as abap.char(32)),1,8) as abap.dats) as to_date

}

然后再用CDS view标准的时间处理函数DATS_DAYS_BETWEEN:

@AbapCatalog.sqlViewName: "zdbetw"

@AbapCatalog.compiler.compareFilter: true

@AccessControl.authorizationCheck: #CHECK

@EndUserText.label: "Day between"

define view zc_date_day_between as select from zdate_day_between as host{

key host.prod_guid,

host.prod_id,

host.from_date,

host.to_date,

DATS_DAYS_BETWEEN(host.from_date, host.to_date) as no_of_days

}

测试结果:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/17802.html

相关文章

  • 20 个案例教你在 Java 8 中如何处理日期和时间?

    摘要:前言前面一篇文章写了如何安全的使用里面介绍了如何处理日期时间,以及如何保证线程安全,及其介绍了在中的处理时间日期默认就线程安全的类。引入了全新的日期时间格式工具,线程安全而且使用方便。 前言 前面一篇文章写了《SimpleDateFormat 如何安全的使用?》, 里面介绍了 SimpleDateFormat 如何处理日期/时间,以及如何保证线程安全,及其介绍了在 Java 8 中的处...

    Rango 评论0 收藏0
  • Hello World, S/4HANA for Customer Management 1.0

    摘要:的前世今生在我之前的微信公众号文章的这三款解决方案,您能区分清楚么我曾经提到过我作为成都研究院产品开发团队的一员工作过一段时间。这个功能是成都研究院开发团队负责实现的。 SAP CRM的前世今生 在我之前的微信公众号文章 SAP的这三款CRM解决方案,您能区分清楚么我曾经提到过我作为成都SAP研究院CRM产品开发团队的一员工作过一段时间。 我向在SAP德国总部工作的德国老前辈们请教SA...

    xiaoqibTn 评论0 收藏0
  • Hello World, S/4HANA for Customer Management 1.0

    摘要:的前世今生在我之前的微信公众号文章的这三款解决方案,您能区分清楚么我曾经提到过我作为成都研究院产品开发团队的一员工作过一段时间。这个功能是成都研究院开发团队负责实现的。 SAP CRM的前世今生 在我之前的微信公众号文章 SAP的这三款CRM解决方案,您能区分清楚么我曾经提到过我作为成都SAP研究院CRM产品开发团队的一员工作过一段时间。 我向在SAP德国总部工作的德国老前辈们请教SA...

    sixgo 评论0 收藏0
  • Hello World, S/4HANA for Customer Management 1.0

    摘要:的前世今生在我之前的微信公众号文章的这三款解决方案,您能区分清楚么我曾经提到过我作为成都研究院产品开发团队的一员工作过一段时间。这个功能是成都研究院开发团队负责实现的。 SAP CRM的前世今生 在我之前的微信公众号文章 SAP的这三款CRM解决方案,您能区分清楚么我曾经提到过我作为成都SAP研究院CRM产品开发团队的一员工作过一段时间。 我向在SAP德国总部工作的德国老前辈们请教SA...

    RdouTyping 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<