根据一个人的出生日期和今天的日期,计算他最近的生日(使用Northwind数据库的Employees表)
2011-08-11 18:01
519 查看
使用Northwind的Employees表,根据存储的Birthdate返回每个员工离今天最近的生日,如果今年的生日已经过了,则返回明年的,反之,则返回今年的(注意,如果是闰年2月29日出生的,则在下个月的3月1号过生日)
WITH arg1
[code]AS ( SELECT FirstName ,
LastName ,
BirthDate ,
DATEDIFF(YEAR, BirthDate, GETDATE()) AS DIFF ,
CAST(CONVERT(CHAR(8), GETDATE(), 112) AS DATETIME) AS Today
FROM Employees
),
arg2
AS ( SELECT FirstName ,
LastName ,
BirthDate ,
DATEADD(YEAR, DIFF, BirthDate) AS CurrentBirthday ,
DATEADD(YEAR, DIFF + 1, BirthDate) AS NextBirthday ,
Today
FROM arg1
),
arg3
AS ( SELECT FirstName ,
LastName ,
BirthDate ,
CurrentBirthday
+ CASE WHEN DAY(BirthDate) = 29
AND DAY(CurrentBirthday) = 28 THEN 1
ELSE 0
END AS CurrentBirthday ,
NextBirthday
+ CASE WHEN DAY(Birthdate) = 29
AND DAY(NextBirthday) = 28 THEN 1
ELSE 0
END AS NextBirthday ,
Today
FROM arg2
)
SELECT FirstName ,
LastName ,
BirthDate ,
CASE WHEN Today > CurrentBirthday THEN NextBirthday
ELSE CurrentBirthday
END AS Birthday
FROM arg3
[/code]
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
相关文章推荐
- 【Java】Java根据出生日期计算还有几天的生日
- 根据身份证号码计算出生日期、年龄、性别(18位);根据入职时间计算工龄。
- php根据出生日期获取年龄,生日数据类型为date型
- JS根据生日月份和日期计算星座的简单实现方法
- 根据出生日期计算年龄
- 根据用户输入的二代身份证号码自动为其计算生成出生日期的javascript方法
- 根据身份证号码计算出生日期、年龄、性别(18位)
- mysql根据出生日期计算年龄
- 丶根据出生日期计算年龄
- js 日期计算星座 根据生日的月份和日期,一行代码计算星座的js小函数(转)
- 根据出生日期Date 计算年龄
- php根据出生日期计算年龄函数
- T-SQL2Tips:1.计算任意两日期之间的"周一"到"周日"分别各有几个!2.根据出生..
- Android中根据出生年月计算生日剩余天数
- 根据生日的月份和日期,一行代码计算星座的js小函数(最简)
- SQL根据出生日期计算年龄的两种算法
- sql 根据出生日期计算年龄
- js实现根据出生日期计算年龄
- php根据出生日期计算年龄
- java根据出生日期和当前时间计算年龄