/*

* Sql得到生日(闰月考虑)

* @birthday 时间

* @flag 1:返回2月28日,0:返回3月1日

* 调用:Select dbo.GetBirthday(birthday,0) From ofUser ou Where userId='48e541e2-7883-416a-b4ee-d78ddde4d6b8'

*/

Create Function GetBirthday

(

@birthday     Datetime,

@flag         Int

)

Returns Datetime

As

Begin

Declare @BirthdayRet      Datetime,

@BirthdayThis     Datetime,

@BirthdayNext     Datetime,

@today            Datetime,

@dateBetween      Int

Set @today = Convert(Datetime, Convert(Varchar(10), Getdate(), 120))

Set @dateBetween = Datediff(YY, @birthday, Getdate())

Set @BirthdayThis = Dateadd(YY, @DateBetween, @birthday)

Set @BirthdayNext = Dateadd(YY, @DateBetween + 1, @birthday)

If @flag = 1 --2 月29 日的生日计算为2 月28 日

Begin

If @today > @BirthdayThis

Set @BirthdayRet = @BirthdayNext

Else

Set @BirthdayRet = @BirthdayThis

End

Else

--2 月29 日的生日计算为3 月1 日

Begin

If @today > @BirthdayThis

If Day(@birthday) = 29

And Day(@BirthdayNext) = 28

Set @BirthdayRet = @BirthdayNext + 1

Else

Set @BirthdayRet = @BirthdayNext

Else

If Day(@birthday) = 29

And Day(@BirthdayThis) = 28

Set @BirthdayRet = @BirthdayThis + 1

Else

Set @BirthdayRet = @BirthdayThis

End

Return @BirthdayRet

End

Go

资料:
http://blog.csdn.net/smartsmile2012/article/details/8166225
http://www.efficient-it.com.cn/space/78/viewspace/itemid/4464.html

SqlServer得到生日(闰月考虑)相关推荐

  1. 【转载】Sqlserver根据生日计算年龄

    在Sqlserver中,可以根据存储的出生年月字段计算出该用户的当前年龄信息,主要使用到DateDiff函数来实现.DateDiff函数的格式为DATEDIFF(datepart,startdate, ...

  2. linux c 获取mac地址吗,Linux系统下用C语言获取MAC地址

    最近在做一个小程序,需要用到在linux系统里编写C程序从而获取MAC地址,从网上搜了一遍,想总结一下.如果你就只需要单个功能的程序,可以采用方法一,见代码1,一般最好能够封装起来,写成获取MAC地址 ...

  3. 日期问题:根据某用户的出生日期和当前日期,计算出他最近的生日,主要是闰月的处理

    准备数据 CREATE TABLE user( user_id INT NOT NULL PRIMARY KEY, name VARCHAR(20) NOT NULL, birth_date DATE ...

  4. Interview:算法岗位面试—10.11下午—上海某公司算法岗位(偏数据分析,证券金融行业)技术面试考点之sqlserver语言相关考察点复习

    Interview:算法岗位面试-10.11下午-上海某公司算法岗位(偏数据分析,证券金融行业)技术面试考点之sqlserver语言相关考察点复习 导读:其实,考察的知识点,博主都做过, 还包括sql ...

  5. js生日计算年龄_生男生女计算公式超准

    生男生女的计算公式是怎样的?如何通过计算公式准确的推算出你怀的是男孩还是女孩呢?据说生男生女的公式超准确度99%,这么简单又准确的计算方法你确定不用吗? 一.生男生女计算公式: 1:怀孕农历月份双乘+ ...

  6. 用python庆祝生日_生日到底该过阴历还是阳历好呢?不是迷信,都怪我们大意!...

    过生日到底该过阴历还是阳历?答案说出来你可能都不信 在我们国家,过生日有两种不同的方式,因为有两种不同的日子的计算方式,分为阴历和阳历.一般来说,在农村和一些比较落后的地方,人们习惯于用阴历来计算生日 ...

  7. SQLServer:用户自定义数据类型用法

    今天给大家梳理一下SQLServer:用户自定义数据类型用法,希望对大家能有所帮助! 1.基于基本数据类型创建的别名数据类型 -- 创建生日的数据类型 CREATE TYPE birthday FRO ...

  8. SQLServer学习笔记系列5

    一.写在前面的话 转眼又是一年清明节,话说"清明时节雨纷纷",武汉的天气伴随着这个清明节下了一场暴雨,整个城市如海一样,朋友圈渗透着清明节武汉看海的节奏.今年又没有回老家祭祖,但是 ...

  9. 关于SQLServer2005的学习笔记——生日问题

    生日问题是个看似简单逻辑上却又比较复杂的小问题 主要的逻辑难点第一个是关于闰月尾天的计算,第二个是判断本年度生日是否已过 本文给出了三种解决办法, 第一种是最常用的解决办法,即常用的 SQL 语法,不 ...

  10. 数据库索引键uk_数据库SQLServer

    2015.5.20 数据库 类型:层次型,网状型,关系型(目前应用最广的数据库类型) 常见数据库:SQLServer,Oracle,DB2,Access,VisualFoxpro,MySQL(目前应用 ...

最新文章

  1. MDA模型定义及扩展
  2. 因子分析累计方差贡献率要在多少_R语言进阶之因子分析
  3. mariadb-10实现半同步复制及SSL安全复制
  4. 数组、ArrayList、链表、LinkedList
  5. Polycarp's New Job
  6. [渝粤教育] 广东-国家-开放大学 21秋期末考试财务管理10164k2 (2)
  7. android图片分辨率改变,android 通过修改图片像素实现CircleImageView
  8. NSTimer 的用法
  9. 小学数学四年级上册计算机教案,四年级信息技术人教版上册教案
  10. 替代计算机内存条,电脑想加内存条,DDR3,DDR4傻傻分不清?
  11. 百度网站收录批量查询 介绍百度网站收录批量查询3种方式
  12. python之代码可读性浅谈
  13. 微信群被封怎么办?微信群如何防封?一招解决永不封群!
  14. php 标点符号,php 过滤英文标点符号及过滤中文标点符号代码_PHP教程
  15. How MonoRail works
  16. Windows10远程报错:由于CredSSP加密Oracle修正导致远程失败
  17. WebAssembly js性能对比
  18. 某电信运营商客户是否会流失的预测分析
  19. MariaDB 之用
  20. git commit -m 提交忽略代码校验

热门文章

  1. zz JQuery 插件
  2. Template Power
  3. DedeCMS专题版块多种方法随意调用
  4. SharePoint Portal Server-管理匿名访问设置
  5. 39.Linux/Unix 系统编程手册(下) -- 能力
  6. 15. module create
  7. 27. netstat
  8. 36. Element length 属性
  9. mysql .net2.0_MySQL和.Net2.0合营哄骗
  10. 【专家访谈】测试专家 - 陈林钧,访谈问题收集中