【问题标题】:Count how many days someone has spent being a certain age in a certain time period计算某人在特定时间段内度过了特定年龄的天数
【发布时间】:2014-01-05 13:22:13
【问题描述】:

您好,我正在使用 SQL DB2 并且有一个 2005-01-01 to 2012-12-31 的研究窗口,其中不同的人在一个地址居住了不同的时间,例如

Person      Date_birth       Address     Start         End
1           1973-06-01       312a        2001-01-01    2006-04-05
1           1973-06-01       104c        2008-04-11    2013-01-02
2           1989-11-26       56e         2006-11-07    2011-10-31

对于每个人,我需要知道他们在数据中给出的地址居住期间在特定年龄度过了多少天,并且只有在研究窗口中存在天数时才计算天数。

例如,第 1 个人花了 120 天成为 27 岁 between 2001-01-01 and 2001-06-01,然后 365 天成为 28 岁 between 2001-06-01 and 2002-06-01 等等。

我显然可以确定每个人在每个新地址开始时的年龄,然后如何确定他们住在每个有效地址时的后续生日。有没有人对我可以从哪里开始有任何合乎逻辑的见解。不一定要找代码。

【问题讨论】:

    标签: sql db2 datediff


    【解决方案1】:

    试试这个:

    这是一个简单的 sql 查询,用于查找两个日期之间的天数差异。

    SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
    Date myDate=null,myDate1=null;
    myDate=format.parse(oldDate);
    myDate1=format.parse(newDate);
    int diffInDays = (int)( (myDate1.getTime() - myDate.getTime())/ (1000 * 60 * 60 * 24) );
    

    【讨论】:

    • 目前我可以使用简单的年份(开始) - 年份(日期出生)来确定第一次搬到地址时的年龄,但我还需要知道他们在这个地址上花了多长时间至于以后的年龄。
    • 当他们开始在该地址居住时使用 oldDate=Date newDate=current Date
    猜你喜欢
    • 2023-04-10
    • 2019-06-22
    • 2021-06-26
    • 1970-01-01
    • 2013-05-29
    • 2014-03-23
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多