首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Datediff (?)

用Datediff (?)
EN

Stack Overflow用户
提问于 2015-07-23 13:39:55
回答 3查看 971关注 0票数 0

我正在尝试使用Datediff函数来让我从一个用户那里消失几年,但这比我想象的要复杂得多。

代码语言:javascript
复制
SELECT DATEDIFF( DD,'1963-07-22','2016-07-23')

这将给我19360天,我认为这是因为2016年有一个飞跃年,这是很好的。

我想做的是得到,而不是那些日子。

如果将间隔从DD更改为YY(YYYY),则只计算年份。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-23 14:51:26

正确的答案是:计算某人的年龄,或者两个日期之间用截短的年份表示的差异

代码语言:javascript
复制
year(@today)-year(@birthDate)+floor((month(@today)-month(@birthdate)+floor((day(@today)-day(@birthdate))/31))/12);

不管闰年如何,这都是可行的。是否出生在一个较晚的月份,甚至是同一个月的较晚的一天。这也会忽略小时和分钟,就像计算一个人的年龄一样。

票数 1
EN

Stack Overflow用户

发布于 2015-07-23 13:46:03

根据我的经验,最好使用这两个日期之间的天数,然后精确地除以365.25,然后再舍入到偶数年。我想这会给你几年来最精确的年龄。

票数 2
EN

Stack Overflow用户

发布于 2021-02-12 19:08:40

在DateDiff中使用"yyyy“时,只使用日期的年份部分来计算差额。省略了月和日。这将产生结果,有时是正确的,有时是不正确的一年。

试着用这个代替。

代码语言:javascript
复制
SELECT Int((#2016-07-23#-#1963-07-22#)/365.25);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31589111

复制
相关文章

相似问题

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