SQL Zaman Hesaplama



Merhaba Arkadaşlar,

Mssql de zaman hesapla fonksiyonunu ele alacağız.

Fonksiyonun amacı : gönderilen tarih ile şu anki zaman arasındaki farkı (3 dk, 5 saat, 1 yıl vb.) geri döndürmektir.

Kolay gelsin.


CREATE FUNCTION [dbo].[zaman_hesapla]
(
@tarih smalldatetime
)
RETURNS nvarchar(50)
AS
BEGIN
  DECLARE @Result nvarchar(50)
  if(DATEDIFF(month,@tarih,getdate())>12)
   begin
   set @Result= convert(nvarchar(20),
   DATEDIFF(year,@tarih,getdate())) + ' yıl'
   end
  else if(DATEDIFF(day,@tarih,getdate())>30)
   begin
   set @Result= convert(nvarchar(20),
   DATEDIFF(month,@tarih,getdate())) + ' ay'
   end
 else if(DATEDIFF(hour,@tarih,getdate())>24)
   begin
   set @Result=convert(nvarchar(20),
   DATEDIFF(day,@tarih,getdate())) + ' gün'
   end
 else if(DATEDIFF(minute,@tarih,getdate())>60)
   begin
   set @Result=convert(nvarchar(20),
   DATEDIFF(hour,@tarih,getdate())) + ' saat'
   end
 else if(DATEDIFF(second,@tarih,getdate())>60)
   begin
   set @Result=convert(nvarchar(20),
   DATEDIFF(minute,@tarih,getdate())) + ' dk'
   end
 else if(DATEDIFF(second,@tarih,getdate())>0)
   begin
   set @Result=convert(nvarchar(20),
   DATEDIFF(second,@tarih,getdate())) + ' sn'
   end
 else 
   begin
   set @Result='az önce'
   end
 
 
RETURN(@Result)
END