MS Sql de manuel olarak tarih alanı elde etmek için yıl, ay, gün pametreleri alan scalar fonksiyon oluşturma
4.261 defa okundu
Konu: SQL Fonksiyonları
İçindekiler
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.
SQL
- 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ışı
SQL
- SELECT dbo.FN_TARIHLE(2014,2,7)
veya
SQL
- SELECT dbo.FN_TARIHLE(2014,02,07)
veya
SQL
- SELECT dbo.FN_TARIHLE(YEAR(GETDATE()),MONTH(GETDATE()),01)
Teşekkürler, geri bildiriminiz alındı.