【问题标题】:Count where age is going to be 60 in next 3 years onward计算未来 3 年的年龄将是 60 岁
【发布时间】:2013-05-15 11:49:25
【问题描述】:

我必须计算所有在 2013 年 6 月、2014 年 6 月和 2015 年 6 月年龄将达到 60 岁的教师。 详情 : 2013 年有 1 名教师 2014 年有 5 名教师相同等。

我不知道如何用 June 获得未来三年,并计算 2013 年 6 月、2014 年 6 月和 2015 年 6 月年龄为 60 岁的教师人数。

这是表格:

TeacherName         DateOfBirth               TeacherAge    june2013    june2014    june2015
S. KHALID SALIM     1958-03-23 00:00:00.000   55            
ZUBAIDA BEGUM       1976-08-01 00:00:00.000   36            
TANZEEM AKHTAR      1974-09-25 00:00:00.000   38            
MARYAM BIBI         1982-08-18 00:00:00.000   30            
RABIA TABASSUM      1976-11-10 00:00:00.000   36    

这是我的查询:

SELECT  TeacherName, DateOfBirth,
  datediff(mm, DateOfBirth, getdate()) / 12 as TeacherAge,
  '' as  june2013(countteachers) , '' as june2014(countteachers), '' as june2015(countteachersonlywhoseagewillbe60atjune2015)
FROM Teachers

【问题讨论】:

  • 这是我的 SQL 查询,需要完成并正确 SELECT TeacherName,DateOfBirth,datediff(mm, DateOfBirth, getdate()) / 12 as TeacherAge, '' as june2013 ,'' as june2014, '' 来自教师的 2015 年 6 月
  • 你的意思是,所有在这 3 个 6 月之一过 60 岁生日的人?请注意,日期函数没有标准,因此如果不指定数据库引擎,您的问题将无法回答。
  • 否:我有这三个日期 JUNE2013、JUNE2014、JUNE2015 现在我想计算在 2013 年 6 月或 2014 年 6 月或 2015 年 6 月年满 60 岁的教师人数我需要计算所有教师
  • “2013 年 6 月完成”是什么意思?
  • 如果有一位老师的出生日期是 1958-03-23 首先我们需要从这个出生日期计算年龄,现在查询中是 55 岁,我需要计算是否一些老师将在明年 6 月,即 2014 年 60 岁,如果不是,则只计算 0 个相同的情况

标签: sql date


【解决方案1】:

试试这个:

DECLARE @dob  DATETIME, @june2013date DATETIME, @june2014date DATETIME
SET @dob='1980-01-09 00:00:00'
SET @june2013date='2013-06-01 00:00:00'
SET @june2014date='2014-06-01 00:00:00'


SELECT DATEDIFF(hour,@dob,GETDATE())/8766  AS Age, 
   DATEDIFF(hour,@dob,@june2013date)/8766 AS June2013Age, 
   DATEDIFF(hour,@dob,@june2014date)/8766 AS June2014Age

它应该返回如下内容:

Age         June2013Age June2014Age
----------- ----------- -----------
33          33          34

【讨论】:

    【解决方案2】:

    所以您想统计所有将在 2013/2014/2015 年 6 月完成 60 年的教师吗?

    真的是对生日的约束:

    select count(*) from teachers where 
        dateofbirth between '1953-06-01' and '1953-06-30 23:59:58'
        OR dateofbirth between '1954-06-01' and '1954-06-30 23:59:58'
        OR dateofbirth between '1955-06-01' and '1955-06-30 23:59:58'
    

    【讨论】:

    • 是的,我们必须从生日日期算起,但是如果教师年龄在其中,即如果年龄是 60 岁,那么我们必须将其与上述三年日期进行比较我们会计算
    猜你喜欢
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 2020-12-28
    • 2016-03-20
    • 2011-04-16
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    相关资源
    最近更新 更多