首先建立一个表如下:

=======================

BirthDay  datetime not null

Age    通过公式计算得出

=======================

以上是表的两个字段,通过BirthDay字段的数据自动生成Age字段

Age字段的公式如下:

(case when (datediff(year,[BirthDay],getdate()) <> 0) then (ltrim(datediff(year,[BirthDay],getdate())) + '岁') else (case when (datediff(month,[BirthDay],getdate()) <> 0) then (ltrim(datediff(month,[BirthDay],getdate())) + '月') else (case when (datediff(day,[BirthDay],getdate()) <> 0) then (ltrim(datediff(day,[BirthDay],getdate())) + '天') else '' end) end) end)

这样子产生的数据就是通过填写的日期计算的。

下面是一个简单的SQL语句:

 SELECT  * ,
( CASE WHEN ( DATEDIFF(year, [BirthDay], GETDATE()) <> 0 )
THEN ( LTRIM(DATEDIFF(year, [BirthDay], GETDATE())) + '岁' )
ELSE ( CASE WHEN ( DATEDIFF(month, [BirthDay], GETDATE()) <> 0 )
THEN ( LTRIM(DATEDIFF(month, [BirthDay], GETDATE()))
+ '月' )
ELSE ( CASE WHEN ( DATEDIFF(day, [BirthDay],
GETDATE()) <> 0 )
THEN ( LTRIM(DATEDIFF(day, [BirthDay],
GETDATE())) + '天' )
ELSE ''
END )
END )
END )
FROM Test

以上是进行测试的代码

SQL通过日期计算年龄的更多相关文章

  1. JS根据选择的日期计算年龄

    本例中用的是easyUI的datebox $('#cal_birthday').datebox({ onSelect: function(date){ //根据选则的日期计算年龄 //alert(da ...

  2. SQL Server日期计算

    通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天.你们大部分人大概都知道怎样把日期进行分割(年.月.日等),然后仅仅用分割出来的年.月.日等放在几个函 ...

  3. jquery 根据日期计算年龄

    <script type="text/javascript"> //jquery页面加载完成后,根据后端的出生日期,计算年龄 $(function () { // 获得 ...

  4. SQL根据日期计算当月有多少天(转)

    原文链接:https://blog.csdn.net/dobear_0922/article/details/2393235 --1.删除测试用表IF OBJECT_ID(N'Test', N'U') ...

  5. SQL 根据生日和日期计算年龄

    FLOOR(datediff(DY,p.Dob,o.RegisterTime)/365

  6. oracle中SQL根据生日日期查询年龄的方法

    方法:SELECT Trunc(MONTHS_BETWEEN(SYSDATE,BIRTH_DATE)/12) FROM 某表 Trunc函数在这里对带有小数位数的数字取整数部分: SYSDATE为or ...

  7. Java 根据年月日精确计算年龄

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...

  8. SQL 根据日期精确计算年龄

    SQL 根据日期精确计算年龄 第一种: 一张人员信息表里有一人生日(Birthday)列,跟据这个列,算出该人员的年龄 datediff(year,birthday,getdate()) 例:birt ...

  9. PGSQL-通过SQL语句来计算两个日期相差的天数

    这是本人第一次写的~我在某次需求中遇到一个问题,如何在SQL语句中计算出两个日期的天数,然后用那个结果来进行数据的筛选呢?通过网上查阅了资料发现 date_part('day', cast(time1 ...

随机推荐

  1. IE自动化

    自动打开www.baidu.com,并搜索关键字“abcd” #定义函数:等待页面打开 function WaitForLoad($ie) { sleep 2 do {Sleep -Mi 200} w ...

  2. google域名邮箱申请 gmail域名邮箱申请(企业应用套件)指南

    近期一直有朋友问我怎么注冊域名邮箱,于是整理出来,贴出来吧.已经非常具体了,你能够直接对比着做了.什么是域名邮箱? 假设你有一个自己的域名,通过对域名dns进行设置,创建以自己的域名作为邮箱后缀的邮箱 ...

  3. JQuery Basic Features Quick Walkthrough

    1. Basic Selectors $('p')—Accesses all the paragraph elements in the HTML file $('div')—Accesses all ...

  4. Codeforces Gym 100342E Problem E. Minima 暴力

    Problem E. MinimaTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attac ...

  5. GDI+与图形编程研究

    GDI+的基本概念 GDI+的常用对象,包括Graphics.Font.Brush.Pen等对象的创建和使用 常用图形的绘制 Color结构.Point结构和Rectangle结构 1.GDI+的概念 ...

  6. 调取jSon数据--展示

    下面代码是将页面中的展示部分 function searchProductlistByfilterCondition(index, type, sort, filterWord) { //cite_h ...

  7. 在一个文件中有10G个整数,乱序排列,要求找出中位数

     题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存). ...

  8. Spark_Api_图解

  9. C++_归并排序(纯C版)

    #include <iostream> #include <stdlib.h> using namespace std; int compared(const void *ke ...

  10. uboot_starts_analysis.pdf

    Uboot中start.S源码的指令级的详尽解析 HTML版本的在线地址为:http://www.crifan.com/files/doc/docbook/uboot_starts_analysis/ ...