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的原创文章,请关注公众号"汪子熙":

如何计算CDS view里两个时间戳之间的天数间隔的更多相关文章

  1. js 计算两个时间戳之间相隔天数

    var start=1491789600000;//2017-4-10 10:00 var end=1494381600000;//2017-5-10 10:00 var utc=end-start; ...

  2. php如何计算两个时间戳之间相差的日时分秒

    /功能:计算两个时间戳之间相差的日时分秒//$begin_time 开始时间戳//$end_time 结束时间戳function timediff($begin_time,$end_time){ if ...

  3. PHP 计算两个时间戳之间相差的时间

    //功能:计算两个时间戳之间相差的日时分秒 //$begin_time 开始时间戳 //$end_time 结束时间戳 function timediff($begin_time,$end_time) ...

  4. PHP计算两个时间戳之间间隔时分秒

    /功能:计算两个时间戳之间相差的日时分秒//$begin_time 开始时间戳//$end_time 结束时间戳function timediff($begin_time,$end_time){ if ...

  5. iOS 计算两个日期之间的天数问题

    //获取当前时间若干年.月.日之后的时间 + (NSDate *)dateWithFromDate:(NSDate *)date years:(NSInteger)years months:(NSIn ...

  6. JS计算两个日期之间的天数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. js 求两个日期之间相差天数

    //求两个日期之间的相差天数 function daysBetween(DateOne, DateTwo) { var OneMonth = DateOne.substring(5, DateOne. ...

  8. 计算两个日期之间的天数差C++/java

    1--Java 分析:调用java中Calendar类 int days(Date date1,Date date2){ Calendar cal = new Calendar.getInstance ...

  9. mysql计算两个日期之间的天数

    MYSQL自带函数计算给定的两个日期的间隔天数   有两个途径可获得   1.利用TO_DAYS函数   select to_days(now()) - to_days('20120512')   2 ...

随机推荐

  1. iOS设备屏幕分辨率分布

    iOS设备屏幕分辨率比较单一,960*640是iPhone4和4s的分辨率,占比67.4%;1024*768是iPad1和iPad2的分辨率,占比22.5%;480*320是iPhone3和3gs的分 ...

  2. javamail - 发件、收件(SSL连接)

    需要的包:mail.jar  jsse.jar(说明:jsse.jar是jre自带的,如果jdk1.5及以下需要Java Activation Framework框架的activation.jar) ...

  3. 利用python数据分析panda学习笔记之基本功能

    1 重新生成索引 如果某个索引值不存在就引入缺失值 from pandas import Series,DataFrame import pandas as pd import numpy as np ...

  4. Laravel框架之Response操作

    public function response(){ //响应json /*$data = [ 'errCode'=>0, 'errMsg' =>'success', 'data' =& ...

  5. pre 自动换行

    pre { white-space:pre-wrap; word-wrap:break-word; } 增加那么一句即可!

  6. 浅谈SpringBoot核心注解原理

    SpringBoot核心注解原理 今天跟大家来探讨下SpringBoot的核心注解@SpringBootApplication以及run方法,理解下springBoot为什么不需要XML,达到零配置 ...

  7. 让group tableview每个section拥有阴影和圆角

    #import <UIKit/UIKit.h> @class GroupShadowTableView; @protocol GroupShadowTableViewDelegate &l ...

  8. iOS 中使用 MJExtension 遇到 关键字(id) 怎么办

    MJExtension 是个人比较喜欢用的json 转model 的软件,当遇到系统关键字时就会出现崩溃,解决方式如下 1.建立Modle 解析类,服务返回数据中带有id,这个时候用字典转Mode(m ...

  9. 如何将基于对话框的MFC工程改成基于BCG的

    1.stdafx.h 加入如下内容.BCGCBProInc.h间接导入了lib. 2.应用程序类的父类由CWinApp改成CBCGPWinApp.构造函数增加如下代码: 3.对话框的父类有CDialo ...

  10. POJ3692【二分匹配】

    题意: 有男生女生,男生都认识双方,女生都认识双方,给出一些男女关系,问最大拿多少个人,使得所有人都认识双方. 思路: 原图最大团=总结点数-[[补图(补图为二分图)]的最大独立集=最大完全子图的顶点 ...