MS Sql de manuel olarak tarih alanı elde etmek için yıl, ay, gün pametreleri alan scalar fonksiyon oluşturma

MS Sql de manuel olarak tarih alanı elde etmek için yıl, ay, gün pametreleri alan scalar fonksiyon oluşturma

MS SQL de tarih verisini bazı durumlarda manuel oluşturması gerekebilir. Böyle durumlarda gün, ay ve yıl bilgilerini parametre olarak gönderip tarih verisi elde edebilmek için kullanıcı tanımlı bir fonksiyon yazılabilir. Zira bu üç parametrenin bir kısmı bir formül veya bir alandan elde edilebilir, bir kısmı manuel verilebilir. Ayrıca ay ve gün 1 veya 2 karakter olarak gönderilebilir.

Aşağıda kullanıcı tanımlı scalar fonksiyon oluşturulması ve kullanılması verilmiştir.

CREATE FUNCTION [dbo].[FN_TARIHLE] (@Yil int,@Ay int,@Gun int)

RETURNS varchar(8) AS

BEGIN

     Declare @Sonuc varchar(8)    

     IF LEN(CONVERT(NVARCHAR,@Yil))=4

     BEGIN

          SET @Sonuc=CONVERT(NVARCHAR,@Yil)

     END    

     IF LEN(CONVERT(NVARCHAR,@Ay))=1

     BEGIN

          SET @Sonuc=@Sonuc+'0'+CONVERT(NVARCHAR,@Ay)

     END    

     IF LEN(CONVERT(NVARCHAR,@Ay))=2

     BEGIN

          SET @Sonuc=@Sonuc+CONVERT(NVARCHAR,@Ay)

     END    

     IF LEN(CONVERT(NVARCHAR,@Gun))=1

     BEGIN

          SET @Sonuc=@Sonuc+'0'+CONVERT(NVARCHAR,@Gun)

     END

     IF LEN(CONVERT(NVARCHAR,@Gun))=2

     BEGIN

          SET @Sonuc=@Sonuc+CONVERT(NVARCHAR,@Gun)

     END

     Return @Sonuc

END  

 

Fonksiyonunun kullanılışı

SELECT dbo.FN_TARIHLE(2014,2,7) 

veya

SELECT dbo.FN_TARIHLE(2014,02,07)

veya

SELECT dbo.FN_TARIHLE(YEAR(GETDATE()),MONTH(GETDATE()),01)


İlgili Yazılar