问题描述
嗨,
几周前我们刚刚在甲骨文上直播。我有一个遗留进程,其中包括运行为Sybase编码的脚本。我已经将大部分转换为Oracle,但是在年龄字段上遇到了麻烦 (这是我需要工作的最后一块)。我想过只包括老年片...然后考虑将整个脚本包含在上下文中 (如果没有其他内容)。
提前感谢您的协助!
-丹尼斯
当前遗留代码
几周前我们刚刚在甲骨文上直播。我有一个遗留进程,其中包括运行为Sybase编码的脚本。我已经将大部分转换为Oracle,但是在年龄字段上遇到了麻烦 (这是我需要工作的最后一块)。我想过只包括老年片...然后考虑将整个脚本包含在上下文中 (如果没有其他内容)。
提前感谢您的协助!
-丹尼斯
当前遗留代码
SELECT DISTINCT meme.MEME_MEDCD_NO, meme.MEME_BIRTH_DT, AGE = CASE WHEN ( month(convert(datetime, meme.MEME_BIRTH_DT, 103))*100)+ day(convert(datetime, meme.MEME_BIRTH_DT, 103)) - ((month(getdate())*100)+day(getdate())) <= 0 THEN DATEDIFF(YEAR,convert(datetime, meme.MEME_BIRTH_DT, 103),getdate()) ELSE DATEDIFF(YEAR,convert(datetime, meme.MEME_BIRTH_DT, 103),getdate())-1 END, sbsb.SBSB_ID, mepe.MEPE_EFF_DT, mepe.MEPE_TERM_DT, mepe.MEPE_ELIG_IND, mepe.CSPI_ID, sbad.SBAD_COUNTY AS 'Member_County', pdpd.LOBD_ID FROM dbo.CMC_MEME_MEMBER meme INNER JOIN dbo.CMC_MEPE_PRCS_ELIG mepe ON mepe.MEME_CK =meme.MEME_CK INNER JOIN dbo.CMC_SBSB_SUBSC sbsb ON sbsb.SBSB_CK = meme.SBSB_CK INNER JOIN CMC_PDPD_PRODUCT pdpd ON mepe.PDPD_ID = pdpd.PDPD_ID INNER JOIN CMC_SBAD_ADDR sbad ON sbsb.SBSB_CK = sbad.SBSB_CK AND sbsb.SBAD_TYPE_MAIL = sbad.SBAD_TYPE WHERE mepe.GRGR_CK IN (1,3,8) AND mepe.MEPE_ELIG_IND = 'Y' AND mepe.MEPE_EFF_DT <= '09/01/2020' AND -- Match file date mepe.MEPE_TERM_DT >= '09/01/2020' AND -- Match file date meme.MEME_MEDCD_NO IN ( )复制
专家解答
康纳最近发了一篇关于这个话题的帖子 :)
https://connor-mcdonald.com/2020/09/11/age-calculations-just-how-old-are-you/
要注意的关键点是,在进行日期计算时,到处都有边缘情况。
克服这些问题的一种方法是
-将当前日期和出生日期转换为YYYYMMDD表格中的数字
-从当前日期值中减去出生值
-除以10,000
-拿这个的地板/trunc
例如:
https://connor-mcdonald.com/2020/09/11/age-calculations-just-how-old-are-you/
要注意的关键点是,在进行日期计算时,到处都有边缘情况。
克服这些问题的一种方法是
-将当前日期和出生日期转换为YYYYMMDD表格中的数字
-从当前日期值中减去出生值
-除以10,000
-拿这个的地板/trunc
例如:
trunc ( (to_number ( to_char ( sysdate, 'YYYYMMDD' ) ) - to_number ( to_char ( birth_dt, 'YYYYMMDD' ) ) ) / 10000 ) calculated_age复制
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
786次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
664次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
591次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
548次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
532次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
510次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
496次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
470次阅读
2025-04-17 09:30:30
OR+DBLINK的关联SQL优化思路
布衣
382次阅读
2025-05-05 19:28:36
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
382次阅读
2025-04-15 14:48:05