惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Palo Alto Networks Blog
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
博客园_首页
博客园 - 三生石上(FineUI控件)
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
Microsoft Security Blog
Microsoft Security Blog
P
Privacy & Cybersecurity Law Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Secure Thoughts
爱范儿
爱范儿
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
H
Help Net Security
The Cloudflare Blog
Recorded Future
Recorded Future
Attack and Defense Labs
Attack and Defense Labs
J
Java Code Geeks
O
OpenAI News
T
Tor Project blog
B
Blog RSS Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
PCI Perspectives
PCI Perspectives
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
About on SuperTechFans
www.infosecurity-magazine.com
www.infosecurity-magazine.com
W
WeLiveSecurity
Cyberwarzone
Cyberwarzone
云风的 BLOG
云风的 BLOG
Security Latest
Security Latest
S
Schneier on Security
Know Your Adversary
Know Your Adversary
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
Vulnerabilities – Threatpost
D
DataBreaches.Net
宝玉的分享
宝玉的分享
T
Troy Hunt's Blog
V
V2EX
Cisco Talos Blog
Cisco Talos Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Latest news
Latest news
量子位
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - litsword

[转]IDENT_CURRENT、SCOPE_IDENTITY、@@IDENTITY 差異對照表 [转贴]TFS Power Tools–September 2010 Release SQL 中使用正则表达式过滤字母或数字 [转载]记不住ASP.NET页面生命周期的苦恼 Split Full Name as First and Last HTML 合并单元格示例 动态加载配置文件 [转载]实现PadLeft的SQL脚本 Useful SQL script 在Update 和 Delete语句中使用 Inner Join SQL游标遍历时的变量赋值 SQL Date Time format SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY 的区别 Union合并数组(去掉重复的项目) Winform 版本信息 事件的定义 【原创】RSS开发心得小结 SQL数据类型nchar,char,varchar与nvarchar区别 JavaScript里面三个等号和两个等号的区别
Sql语句 生日提醒
litsword · 2011-08-25 · via 博客园 - litsword
/*
--Desc: 在计算员工当前日期的生日时,需要考虑闰年的问题,
一般在2月29号出生的人在非闰年时生日在3月1号过。
--Environment: SQL SERVER 2008
--Author: Learnsql
*/USE Tempdb;
GO
--创建测试表
CREATE TABLE #Employee
(
[Name] NVARCHAR(10),
BirthDay
DATETIME
);
GO --插入数据
INSERT INTO #Employee([Name],BirthDay) VALUES('Tom','1970-1-3');
INSERT INTO #Employee([Name],BirthDay) VALUES('Jim','1971-11-23');
INSERT INTO #Employee([Name],BirthDay) VALUES('Lucy','1972-2-29');
INSERT INTO #Employee([Name],BirthDay) VALUES('Bob','1979-3-15');
INSERT INTO #Employee([Name],BirthDay) VALUES('Jack','1985-5-10');
GO-- 提前通知天数
DECLARE @ReminderDay INT
SET @ReminderDay = 100;--生日计算
WITH Emp1([Name],BirthDay,DiffYear,Today) AS --计算当前日期和生日相差的年数
(
SELECT [Name], BirthDay,
DATEDIFF(YEAR, BirthDay, GETDATE()) AS DiffYear,
CAST(CONVERT(NVARCHAR(8), GETDATE(), 112) AS DATETIME) AS Today
FROM #Employee
),
Emp2(
[Name],BirthDay,Today,BDCur,BDNxt) AS --计算当前生日及下一年生日
(
SELECT [Name],BirthDay, Today,
DATEADD(YEAR, DiffYear, BirthDay) AS BDCur,
DATEADD(YEAR, DiffYear + 1, BirthDay) AS BDNxt
FROM Emp1
),
Emp3(
[Name],BirthDay,Today,BDCur,BDNxt) AS --对闰年生日处理
(
SELECT [Name],BirthDay, Today,
BDCur
+ CASE WHEN DAY(BirthDay) = 29 AND DAY(BDCur) = 28
THEN 1 ELSE 0 END AS BDCur,
BDNxt
+ CASE WHEN DAY(BirthDay) = 29 AND DAY(BDNxt) = 28
THEN 1 ELSE 0 END AS BDNxt
FROM Emp2
)
SELECT #Employee.* FROM (
SELECT [Name], BirthDay,
CASE WHEN BDCur >= Today THEN BDCur ELSE BDNxt END AS BirthDate,
DATEDIFF(DAY,Today,CASE WHEN BDCur >= Today THEN BDCur ELSE BDNxt END) AS DiffDay
FROM Emp3) Emp4
INNER JOIN #Employee
ON Emp4.Name = #Employee.Name
WHERE Emp4.DiffDay < @ReminderDay
;