MSSQL 计算年龄

ALTER FUNCTION [dbo].[GetAge] ( @birthday DATETIME )
RETURNS NVARCHAR(20)
AS
BEGIN

DECLARE @startDatetime DATETIME
SET @startDatetime = @birthday

IF ( @birthday IS NOT NULL
AND ISDATE(@birthday) = 1
)
BEGIN
DECLARE @age NVARCHAR(20) ,
@y INT ,
@m INT ,
@d INT ,
@now DATETIME
SET @now = GETDATE()
SET @y = DATEDIFF(month, @birthday, GETDATE()) / 12
--SET @m = DATEDIFF(month, @birthday, GETDATE())

-- 计算月
SET @startDatetime = DATEADD(YEAR,
DATEDIFF(D, @startDatetime,
GETDATE()) / 365,
@startDatetime)

IF DAY(@startDatetime) <= DAY(GETDATE())
SET @m = DATEDIFF(M, @startDatetime, GETDATE())
ELSE
SET @m = DATEDIFF(M, @startDatetime,
DATEADD(M, -1, GETDATE()))

--计算天
SET @startDatetime = @birthday
SET @startDatetime = DATEADD(YEAR,
DATEDIFF(D, @startDatetime,
GETDATE()) / 365,
@startDatetime)

IF DAY(@startDatetime) <= DAY(GETDATE())
SET @startDatetime = DATEADD(M,
DATEDIFF(M, @startDatetime,
GETDATE()),
@startDatetime)

ELSE
SET @startDatetime = DATEADD(M,
DATEDIFF(M, @startDatetime,
DATEADD(M, -1,
GETDATE())),
@startDatetime)

SET @d = DATEDIFF(day, @startDatetime, GETDATE())

SET @age = CAST(@y AS VARCHAR(5)) + ‘年‘
+ CAST(@m AS VARCHAR(5)) + ‘月‘ + CAST(@d AS VARCHAR(5))
+ ‘天‘

END
ELSE
BEGIN
SET @age = NULL
END
RETURN @age
END

--datediff(month,‘2010-05-06‘,getdate())%12*0.01 as ‘InJobTime‘

时间: 2024-08-01 12:58:23

MSSQL 计算年龄的相关文章

iOS 获取当前时间以及计算年龄(时间差)

获取当前时间 NSDate *now = [NSDate date]; NSLog(@"now date is: %@", now); NSCalendar *calendar = [NSCalendar currentCalendar]; NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarU

通过出生年月日按要求计算年龄的算法

最近项目里碰到个需求,有关于出生年月日计算年龄的,无奈网上搜了搜,感觉都不满足客户的需求只得自己动手了. 不废话,上需求 上算法: 类似于上面这个 yyyy-MM-dd 给一个这个值 算出来了多大年龄 l 不足一月新生儿显示日龄.2 不足一年婴幼儿显示月龄+日龄,如3个月12天.3 超过1周岁到12周岁,显示年龄+月龄,如12岁3个月. public static String getAgeAchen(Context context, Calendar birthday, Calendar no

java根据身份证计算年龄

/** * 根据身份证计算年龄 * * @param idcard * @return */ public static Integer idCardToAge(String idcard) { Integer selectYear = Integer.valueOf(idcard.substring(6, 10)); //出生的年份 Integer selectMonth = Integer.valueOf(idcard.substring(10, 12)); //出生的月份 Integer

依据出生日期Date 计算年龄

依据出生日期计算年龄 public class DateGetAge { public static int getAge(Date birthDay) throws Exception { Calendar cal = Calendar.getInstance(); if (cal.before(birthDay)) { throw new IllegalArgumentException( "The birthDay is before Now.It's unbelievable!"

SPSS根据生日计算年龄并分组

COMPUTE Age=DATEDIFF($TIME,BirthDate,"years"). EXECUTE. SAVE OUTFILE='D:\MaryKay\Data\PRD\ConsultantInfoPrd.sav' /COMPRESSED. SAVE OUTFILE='D:\MaryKay\Data\PRD\ConsultantInfoPrd.sav' /COMPRESSED. STRING AgeGroup1 (A8). RECODE Age (19 thru 24='19

问题:oracle 计算年龄;结果:oracle中根据生日计算年龄的问题

SELECT FLOOR(MONTHS_BETWEEN(SYSDATE,birthday)/12,1) FROM ltteacherinfo where name='朱雪东111'这个报错ORA 00909 :invalid number of arguments这个是怎么错了,计算年龄该怎么算,年龄要整数 --计算员工年龄SELECT FLOOR(MONTHS_BETWEEN(SYSDATE,birthdate)/12) FROM   ps_personal_data             

SQL通过日期计算年龄

原文:SQL通过日期计算年龄 首先建立一个表如下: ======================= BirthDay datetime not null Age 通过公式计算得出 ======================= 以上是表的两个字段,通过BirthDay字段的数据自动生成Age字段 Age字段的公式如下: (case when (datediff(year,[BirthDay],getdate()) <> 0) then (ltrim(datediff(year,[BirthDa

Java 计算年龄

1 public static String getAgeTxt(String birthTime,String beginTime,int level){ 2 if(StringUtils.isBlank(birthTime)||StringUtils.isBlank(beginTime)){ 3 System.out.println("参数中有空值!"); 4 } 5 6 int year = 0,month=0,day=0,hour=0; 7 8 Date birthDate =

js根据身份证计算年龄

/**根据身份证计算年龄 *@param UUserCard 身份证号码 */ function IdCard(UUserCard) { //获取年龄 var myDate = new Date(); var month = myDate.getMonth() + 1; var day = myDate.getDate(); var age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1; if (UUserCard.substri