- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个函数,可以根据插入记录的日期而不是 getdate() 来查找年龄。我想过滤注册时小于18岁的用户。如果我在一年后查询它,根据记录插入日期而不是当前日期,它仍应将用户显示为 17。这是我写的,但它仍然根据当前日期而不是记录插入日期给出年龄。任何建议都会非常有帮助。谢谢您
--InputDate as DateOfBirth
--InsertDate as date the record was inserted
CREATE FUNCTION [dbo].[FindAge] (@InputDate int, @Insertdate datetime )
RETURNS int
AS
BEGIN
DECLARE @Age as Int
DECLARE @d DATETIME
SET @d = CONVERT(DATETIME, CONVERT(VARCHAR(8), @InputDate), 112)
SELECT @Age=DATEDIFF(year, @d, @Insertdate)
- CASE WHEN DATEADD(year, DATEDIFF(year, @d, @Insertdate), @d) <= GetDate()
THEN 0 ELSE 1 END
RETURN @Age
END
---- Drop Obselete procs
GO
更新遵循培根位的建议,效果非常好。
最佳答案
所有DATEDIFF()
所做的就是从日期部分中减去年份。这非常愚蠢:
select datediff(yy,'2000-12-19','2014-01-01') --14
select datediff(yy,'2000-12-19','2014-12-18') --14
select datediff(yy,'2000-12-19','2014-12-19') --14
select datediff(yy,'2000-12-19','2014-12-20') --14
select datediff(yy,'2000-12-19','2014-12-31') --14
select datediff(yy,'2000-12-19','2015-01-01') --15
select datediff(yy,'2000-12-19','2015-12-31') --15
select datediff(yy,'2000-12-19','2016-01-01') --16
select datediff(yy,'2000-12-19','2016-12-31') --16
不要计算一年有 365.25 天之类的小时数。这是徒劳的练习,并且只能保证在每个人的生日附近你都会出错。
你最好的选择是计算人类是如何做的。在美国(我相信也是大多数西方国家),这是年份之间的差异,但您只在过了生日时才计算当前年份:
declare @birthdate date = '2000-12-19';
declare @target date;
SELECT DATEDIFF(yy, @birthdate, @target)
- CASE
WHEN (MONTH(@birthdate) > MONTH(@target))
OR (
MONTH(@birthdate) = MONTH(@target)
AND DAY(@birthdate) > DAY(@target)
)
THEN 1
ELSE 0
END
这是您将获得的值:
set @target = '2014-01-01' --13
set @target = '2014-12-18' --13
set @target = '2014-12-19' --14
set @target = '2014-12-20' --14
set @target = '2014-12-31' --14
set @target = '2015-01-01' --14
set @target = '2015-12-31' --15
set @target = '2016-01-01' --15
set @target = '2016-12-31' --16
将 @target
更改为 getdate()
以计算目前的年龄。
如果您所在的地区使用 East Asian age reckoning但是,您需要使用完全不同的方法来确定一个人的年龄,因为他们在出生之日被视为 1 岁,并且他们的年龄每年二月都会增加。
关于sql-server - 计算年龄的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27574036/
我正在从事一个项目,该项目要求我实现一种方法来确定工作日后一天的人的年龄;也就是每年九月的第一个星期一。 这个方法在以后的年份会用到,所以需要判断当前年份和劳动节后一天的人的年龄。 下面是我用来获取学
我已经在 Play 商店中部署了一个应用程序。我需要获取下载该应用程序的人的年龄 和性别。是否可以获取这些属性,或者我是否需要实现 Google Analytics 才能获取这些属性? 最佳答案 恐怕
我正在尝试根据出生日期计算年龄,我使用 this thread 成功地做到了这一点.但是,我的一些 DateOfBirth 具有空值,并且使用我下面的公式,结果返回为“2012”而不是(空白/空)。
我正在尝试根据财政年度结束时获取年龄。如果我的出生日期是 1962 年 1 月 16 日,那么我当前的年龄是 50 岁(假设今天的日期是 2012 年 1 月 16 日)。我可以使用什么 JavaSc
创建具有以下规范的函数: 函数名称:employee_matcher 目的:将员工姓名与提供的公司、年龄和性别相匹配 参数:公司(字符串)、年龄(整数)、性别(字符串) 返回:员工的名字和姓氏,如下所
1、根据身份证号码计算出生日期、年龄、性别(18位) 复制代码 代码如下: //获取输入身份证号码 var UUserCard = $("#UUserCard").val
适用于OA项目中这些对档案的管理 1、根据身份证号码计算出生日期、年龄、性别(18位) 复制代码代码如下: //获取输入身份证号码 var UUserCa
我将导入表中的数据INSERT INTO插入到我创建的新表中,该表包含有关人员、姓名、地址、出生日期、年龄、性别等的一般信息。 当我插入新表时,导入数据没有年龄,因此我在INSERT INTO之后执行
我如何使用 go standard 构建它? sql包让其他人可以阅读吗?我需要添加很多字段。 result, err := db.Exec( "INSERT INTO MyTable (na
是否有任何简单的 Android/Java 库/框架可以检测图片上的人脸并给我一些关于图片上的人的信息?我的意思是诸如性别、年龄、情绪(微笑、悲伤、愤怒)之类的信息...... 我试过Face++和微
我正在为我的 Android 应用程序使用 Firebase 身份验证。用户可以通过多个提供商(Google、Facebook、Twitter)登录。 成功登录后,有没有办法使用 Firebase a
我想知道是否可以用 PHP 以某种方式检查 session 时限。我浏览了 stackoverflow,但没有找到任何东西。提前感谢您的所有回答。 如果有人想知道为什么我需要知道这样的事情,我想在所有
我正在尝试使用 CakePHP 按出生日期分组并根据结果进行计数。这是我的查询。 $data = $this->User->find('all', array( 'fields' => arr
我正在尝试找出一种使用 Python 3.6 和 Boto 3 通过 aws lambda 函数让用户访问 key 年龄的方法。我的问题是我似乎无法找到正确的 api 调用(如果存在的话)以此目的。我
使用 Seaside 应用程序启动我的图像时,我在启动方法中有此代码: WAMySeasideApp>>startUp: resuming WAMySeasideApp waAppli
谷歌从哪里获得这些数据,是否有可能在没有它的情况下在我自己的网站上手动获得这些数据(假设它以某种Cookie /用户代理字符串/标识符/等形式存在)? 最佳答案 Google从第3方双击Cookie获
我在 Google App Engine 上部署了一个 Django 应用程序,该应用程序过早地将其用户注销。但是没有关闭浏览器窗口/选项卡。在 settings.py 中,我有以下代码: SESSI
我正在通过 Python 使用 YouTube API。我已经可以收集特定视频的所有评论,包括作者姓名、日期和评论内容。 我还可以使用单独的代码提取特定作者的个人信息(年龄、性别、兴趣……)。但我不能
print("how old are you") age = input(">") if age >= 24: print("you are getting old") print (age) els
我是一名优秀的程序员,十分优秀!