Tuesday, September 21, 2010

Age Calculating or Date Subtraction in SQL

// Posted By Suresh

declare @BirthDate datetime,@ToDate datetime, @result datetime
set @BirthDate = '2/2/1984'
set @ToDate = GETDATE()
declare @BirthDay int, @ToDay int, @BirthMonth int, @ToMonth int, @BirthYear int, @ToYear int, @PreToMonth int, @BorrowDay int
declare @Day int, @Month int, @Year int

select @BirthDay= DATEPART(day,@BirthDate),@BirthMonth= DATEPART(MONTH,@BirthDate), @BirthYear = DATEPART(year,@BirthDate)
select @ToDay= DATEPART(day,@ToDate),@ToMonth= DATEPART(MONTH,@ToDate), @ToYear = DATEPART(year,@ToDate)

if(@ToMonth >1)
begin
SET @PreToMonth = @ToMonth - 1;
end
else
begin
set @PreToMonth = 12;
end

if(@BirthDay<=@ToDay)
begin
set @Day= @ToDay - @BirthDay
end
else
begin
if(@PreToMonth = 1 or @PreToMonth = 3 or @PreToMonth = 5 or @PreToMonth = 7 or @PreToMonth = 8 or @PreToMonth = 10 or @PreToMonth = 12)
begin
set @BorrowDay = 31
end
else if(@PreToMonth = 4 or @PreToMonth = 6 or @PreToMonth = 9 or @PreToMonth = 11)
begin
set @BorrowDay = 30
end
else
begin
if(@ToYear%400 =0 or (@ToYear%100 <> 0 AND @ToYear%4 = 0))
begin
set @BorrowDay = 29
end
else
begin
set @BorrowDay = 28
end
end
SET @ToMonth = @ToMonth - 1
set @ToDay = @ToDay + @BorrowDay
set @Day= @ToDay - @BirthDay
end


if(@BirthMonth<=@ToMonth)
begin
set @Month= @ToMonth - @BirthMonth
end
else
begin
set @ToYear = @ToYear - 1
set @ToMonth = @ToMonth + 12
set @Month = @ToMonth - @BirthMonth
end

if(@BirthYear<=@ToYear)
begin
set @Year= @ToYear - @BirthYear
end
else
begin
set @Year = 0
end

print cast(@Year as varchar(4)) + ' Year, '+ cast(@Month as varchar(4)) + ' Month, ' + cast(@Day as varchar(4)) + ' Days'

Friday, September 17, 2010

Get column names of a specified table in SQL

//Post By Suresh Chand

SELECT [NAME] AS 'Columns' FROM SYSCOLUMNS WHERE [ID] = Object_Id('Table Name')

OR

exec sp_columns 'Table Name'