首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据rdlc中今天的出生日期和出生日期来计算年龄、年数、月或日?

如何根据rdlc中今天的出生日期和出生日期来计算年龄、年数、月或日?
EN

Stack Overflow用户
提问于 2015-11-25 07:26:21
回答 1查看 765关注 0票数 0

我正在使用登记证,它需要婴儿的年龄--可能是几年、几个月或几天。我使用了= DateDiff("YYYY",Fields!IssuedOnORNo.Value, Fields!CertificationDate.Value),但是当我将它更改为月或日时,它只产生相同的年数。我想要的是,它会计算孩子的年龄,不管是一个月大还是一天大。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 08:55:50

请尝试下面的the代码,如果它有效的话:

代码语言:javascript
运行
复制
CREATE TABLE dbo.RegistrationCertificate (IssuedOnORNo DATETIME, CertificationDate DATETIME)

INSERT dbo.RegistrationCertificate (IssuedOnORNo, CertificationDate)
SELECT GETDATE(), DATEADD(MONTH, 13, GETDATE())
UNION ALL
SELECT GETDATE(), GETDATE() + 1
UNION ALL
SELECT GETDATE() - 2, GETDATE()
UNION ALL
SELECT GETDATE(), DATEADD(YEAR, 3, GETDATE())
UNION ALL
SELECT GETDATE(), DATEADD(MONTH, 4, GETDATE())

SELECT t.*
    , YEARS = DATEDIFF(YEAR, t.IssuedOnORNo, t.CertificationDate)
    , MONTHS = (DATEDIFF(MONTH, t.IssuedOnORNo, t.CertificationDate) - ((DATEDIFF(MONTH, t.IssuedOnORNo, t.CertificationDate) / 12) * 12))
    , DAYS = ((DATEDIFF(DAY, t.IssuedOnORNo, t.CertificationDate) - ((DATEDIFF(DAY, t.IssuedOnORNo, t.CertificationDate) / 365) * 365))
        - (((DATEDIFF(MONTH, t.IssuedOnORNo, t.CertificationDate) - ((DATEDIFF(MONTH, t.IssuedOnORNo, t.CertificationDate) / 12) * 12))) * 30) - 1)
FROM dbo.RegistrationCertificate  t WITH(NOLOCK)

顺便说一句,如果您想知道如何在报表中使用这些代码,可以使用上面的代码为报表数据创建一个存储过程。

编辑:

在这种情况下,下面的代码应该是报告代码的足够接近的翻译:

代码语言:javascript
运行
复制
YEARS = DateDiff("YYYY",Fields!IssuedOnORNo.Value, Fields!CertificationDate.Value)
MONTHS = (DateDiff("m", Fields!IssuedOnORNo.Value, Fields!CertificationDate.Value)
    - ((DateDiff("m", Fields!IssuedOnORNo.Value, Fields!CertificationDate.Value) / 12) * 12))
DAYS = ((DateDiff("dd", Fields!IssuedOnORNo.Value, Fields!CertificationDate.Value) - ((DateDiff("dd", Fields!IssuedOnORNo.Value, Fields!CertificationDate.Value) / 365) * 365))
        - (((DateDiff("m", Fields!IssuedOnORNo.Value, Fields!CertificationDate.Value) - ((DateDiff("m", Fields!IssuedOnORNo.Value, Fields!CertificationDate.Value) / 12) * 12))) * 30) - 1)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33910703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档