linux计算生日时间,生日计算
/*
--Desc: 在计算员工当前日期的生日时,需要考虑闰年的问题,
一般在2月29号出生的人在非闰年时生日在3月1号过。
--Environment: SQL SERVER 2005
--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
--生日计算
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 [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;
linux计算生日时间,生日计算相关推荐
- c语言计算日出日落时间_计算日出日落算法实现
首先感谢帮我算题的小玉玉~ 算了一周的日出日落,倍觉痛苦,写下来防止下次再算. 根据经纬度和UTC计算日出日落的思路.算法及scala代码如下~ 日出和日落的计算思路: 一天的日出和日落可以根据正午时 ...
- 实现时间的计算: 要求用户输入身份证号,若格式有误,要求其重新输入。然后根据身份证号码输出20岁生日所在周的周三的日期
实现时间的计算: 要求用户输入身份证号,若格式有误,要求其重新输入.然后根据身份证号码输出20岁生日所在周的周三的日期(个人笔记,大佬勿喷) package day03;import java.uti ...
- 编写一个脚本,输入自己的生日时间(YYYYMMDD),计算还有多少天多少个小时是自己的生日。
编写一个脚本,输入自己的生日时间(YYYYMMDD),计算还有多少天多少个小时是自己的生日. #!/bin/sh read -p "Input your birthday(YYYYmmdd) ...
- mysql与oracle根据生日时间计算生日
mysql写法 SELECT user_id, birthday, CURDATE() nowaday,(YEAR(CURDATE())-YEAR(STR_TO_DATE(birthday,'%Y-% ...
- (程序设计逻辑)如何按生日的年月日计算年龄(周岁)
程序设计就跟我们平时头脑想的是一样的,只需要解读我们平常是怎样按顺序进行计算的,然后转换成程序语句就可以了,所以设计程序不是压力很大.下面打个比方:如何按生日的年月日计算年龄(周岁) 我们头脑是怎样计 ...
- linux c计算时间差值,获取时间和计算时间差的几种方法总结,时间差几种方法...
获取时间和计算时间差的几种方法总结,时间差几种方法 一.标准C和C++都可用 1.获取时间用time_t time( time_t * timer ),计算时间差使用double difftime( ...
- Python3计算今天是否生日以及距离生日还有多少天
#!/usr/bin/python # -*- coding: utf-8 -*-import datetime import time# 年月日单个 toyear = time.strftime(' ...
- python算生日_Python3计算今天是否生日以及距离生日还有多少天
#!/usr/bin/python # -*- coding: utf-8 -*- import datetime import time # 年月日单个 toyear = time.strftime ...
- Java计算当前日期距离生日还有多少天
1.键盘录入你的生日字符串 (如:"1998年08月08日")2.计算当前日期距离生日那天有多少天? public static void main(String[] args) ...
最新文章
- python开源项目贡献_通过为开源项目做贡献,我如何找到理想的工作
- jquery-datatables 销毁重新渲染
- OSPF(Open Shortest Path First开放式最短路径优先)
- 计算机网络及应用 pdf,计算机网络及应用卷.pdf
- Redis命令:SETNX key value(SET if Not eXists)
- 2015/Province_C_C++_C/6/奇妙的数字
- 忍辱负重的小白兔们 - 验收准则的意义
- pypi.python.org_在Pypi上发布自己的Python包
- MTK 驱动开发(18)---LCD 参数理解
- 基础知识(四)C++常用函数.txt
- 演示:扩展ACL的配置与应用技巧
- CCPC-Wannafly Winter Camp Day1 (Div2, onsite)【流流流动】
- Let'sEncrypt免费域名申请一键式脚本-目前最简单的脚本
- 公众号零基础,只需10分钟,你的公众号也能5天500+粉丝
- 验证二叉树的前序序列化
- centos网络显示已连接但无法打开网页
- 异步下载小说《诡秘之主》
- 数据库系统概论复习提纲
- 浅析Trafodion体系结构
- 学习大数据需要什么基础?大数据要学哪些内容?