[ABI 云体验] ABI5.2.2获取上季度末最后一天的日期

11452
3

呢喃 数据达人Lv4

发表于2020-12-29 16:58

悬赏1

已解决

楼主
如何根据日期参数选择不同日期获取对应的上季度末的最后一天的日期

最近看过此主题的会员

esen_4IYUJ6V72Z6D

关晓彤的老公

最佳答案

xxxl

发表于2020-12-29 16:58

只看该作者

取消 关注该作者的回复

呢喃 发表于 2020-12-29 17:13
od函数我知道,但是不清楚具体怎么写?这个上季度末的时间是作为参数传进sql中,用来获取这一天的值 ...

感觉判断起来很复杂,实际操作的时候od函数在yyyyq转换到yyyymmdd格式不能识别yyyyq的格式。我还有一个思路是先做判断求当前季度的最后一个月,先用当前月是否是季度中的第一个月判断,用JSY函数,如果是直接加3就是该季度最后一个月再用,如果不是就m-1一直这样判断下去直到判断到是第一个月。判断到了第一个月m+3就是最后一个月了。有了当前季度的最后一个月,直接m-4就是上一个季度的最后一个月了。最后再用d=lastday取到最后一天即上季度最后一天了。

产品里做这样的操作很复杂,可以考虑一下在sql中写。

JSY函数如下
定义
JSY (N)
判断月份N是否是一个季度的第一月,返回逻辑值。如果是返回TRUE,否则返回FALSE,JSY是季首月的简称;
参数
N
正整数或能转化为正整数的字符串。
示例
JSY('01') 返回 TRUE
JSY('04') 返回 TRUE
JSY('07') 返回 TRUE
JSY('10') 返回 TRUE
JSY('11') 返回 FALSE
注意
该函数仅为内存计算函数,不能用于数据库计算,函数参数中不能有 主题表字段


3个回答

只看楼主

xxxl 数据领袖Lv6

发表于2020-12-29 17:06

只看该作者

取消 关注该作者的回复

沙发

可以用od函数https://help.esensoft.com/doc-view-58.html 最后一天的参数是“d=lastday”

呢喃 数据达人Lv4

发表于2020-12-29 17:13

只看该作者

取消 关注该作者的回复

板凳

xxxl 发表于 2020-12-29 17:06
可以用od函数https://help.esensoft.com/doc-view-58.html 最后一天的参数是“d=lastday”

od函数我知道,但是不清楚具体怎么写?这个上季度末的时间是作为参数传进sql中,用来获取这一天的值

xxxl 数据领袖Lv6

发表于2020-12-29 16:58

只看该作者

取消 关注该作者的回复

地板

呢喃 发表于 2020-12-29 17:13
od函数我知道,但是不清楚具体怎么写?这个上季度末的时间是作为参数传进sql中,用来获取这一天的值 ...

感觉判断起来很复杂,实际操作的时候od函数在yyyyq转换到yyyymmdd格式不能识别yyyyq的格式。我还有一个思路是先做判断求当前季度的最后一个月,先用当前月是否是季度中的第一个月判断,用JSY函数,如果是直接加3就是该季度最后一个月再用,如果不是就m-1一直这样判断下去直到判断到是第一个月。判断到了第一个月m+3就是最后一个月了。有了当前季度的最后一个月,直接m-4就是上一个季度的最后一个月了。最后再用d=lastday取到最后一天即上季度最后一天了。

产品里做这样的操作很复杂,可以考虑一下在sql中写。

JSY函数如下
定义
JSY (N)
判断月份N是否是一个季度的第一月,返回逻辑值。如果是返回TRUE,否则返回FALSE,JSY是季首月的简称;
参数
N
正整数或能转化为正整数的字符串。
示例
JSY('01') 返回 TRUE
JSY('04') 返回 TRUE
JSY('07') 返回 TRUE
JSY('10') 返回 TRUE
JSY('11') 返回 FALSE
注意
该函数仅为内存计算函数,不能用于数据库计算,函数参数中不能有 主题表字段


登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号