如何计算CDS view里两个时间戳之间的天数间隔
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,ABAP透明表里的时间戳,数据类型为dec:有个需求:计算这两个时间戳之间的天数间隔,丢弃时间戳年-月-日8位后面的小时:分钟:秒。举个例子:如果时间戳是20180918173132,丢弃173132
千家信息网最后更新 2026年10月31日如何计算CDS view里两个时间戳之间的天数间隔
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的原创文章,请关注公众号"汪子熙":
时间
类型
天数
函数
字符
字符串
两个
之间
不行
例子
公众
原创文章
字段
小时
数据
文章
方案
更多
标准
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河南云网互联网络科技有限公司
互联网中国科技
互联网金融 金融科技
互联网科技金融公司
迪茉互联网科技
丰台科技园 互联网
美国互联网黑科技
睿民互联网科技
多迪互联网科技有限公司
互联网科技有限公司 翻译
重庆科技学院互联网
互联网科技创新企业排名
上海电发互联网科技有限公司
彤创互联网科技有限公司
武汉健翔互联网络科技有限公司
昭通互联网科技选哪家
智腾互联网科技有限公司
四川互联网展示科技馆设计
三亚科技创新互联网基地
恒生科技指数 中概互联网
互联网医疗科技
互联网科技公司官网
互联网科技革命
深圳齐家互联网科技
科技互联网公司logo
海南科技产业互联网平台
黑科技闪耀互联网之光
卓翼科技产业互联网合作
城市宝互联网科技有限公司
唯美互联网科技