如何计算CDS view里两个时间戳之间的天数间隔
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,ABAP透明表里的时间戳,数据类型为dec:有个需求:计算这两个时间戳之间的天数间隔,丢弃时间戳年-月-日8位后面的小时:分钟:秒。举个例子:如果时间戳是20180918173132,丢弃173132
千家信息网最后更新 2025年01月20日如何计算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安全错误
数据库的锁怎样保障安全
数据库笔试50题
恩泽互联网科技有限公司
网游的服务器长什么样
网络安全文明周记300字
确保网络安全运行指标
hgnc数据库使用
网络安全著名人物
数据库表到表之间数据传输
安徽软件开发者多少钱
intel服务器
互联网科技公司校招
绿色全光网络技术联盟会
深圳巡检软件开发
网络安全培训服务
超级列表框取第一列数据库
武汉c语言软件开发公司
软件开发年龄 限制
中国南方电网网络技术有限公司
国际数据库厂商
蛟河软件开发者
访问网站服务器的方式
中国科技查新数据库
网络安全ac是什么
网络安全论文参考文献排序
网件a7000网络安全密钥
涉密服务器管理制度
软件开发人员外包费用
云公司服务器购买申请
天津服务器迁移公司有哪些云空间
内网服务器软件慢