تابع date_to_words با سه پارامتر ورودی که سال و ماه و روز را به صورت رشته ای دریافت و یک رشته برمیگرداند . خود کد واضح و نیاز به توضیح نداره . نظر یادتون نشه .
create FUNCTION date_to_words (@year_ as varchar(4),@mon_ as varchar(2),@day_ as varchar(2) ) RETURNS
VARCHAR(100)
as
BEGIN
/*
declare @year_ as varchar(4)
declare @mon_ as varchar(2)
declare @day_ as varchar(2)
set @year_='1390'
set @mon_='01'
set @day_='02'*/
/* Converts date into words */
DECLARE @yr INT
DECLARE @dateval INT
DECLARE @thousand INT
DECLARE @hundred INT
DECLARE @tens INT
DECLARE @mon INT
DECLARE @tensword VARCHAR(10)
DECLARE @onesword VARCHAR(10)
DECLARE @thousandsword VARCHAR(20)
DECLARE @hundredsword VARCHAR(20)
DECLARE @datevalsword VARCHAR(20)
DECLARE @MonWord VARCHAR(20)
SET @yr=cast(@year_ as int)
SET @dateval=cast(@day_ as int)
Set @mon=cast(@mon_ as int)
/* Mon TO WORDS */
SELECT @MonWord =CASE @Mon
WHEN 1 THEN ' فروردین ماه '
WHEN 2 THEN ' اردیبهشت ماه '
WHEN 3 THEN ' خرداد ماه '
WHEN 4 THEN ' تیر ماه '
WHEN 5 THEN ' مرداد ماه '
WHEN 6 THEN ' شهریور ماه '
WHEN 7 THEN ' مهر ماه '
WHEN 8 THEN ' ابان ماه '
WHEN 9 THEN ' اذر ماه '
WHEN 10 THEN ' دی ماه '
WHEN 11 THEN ' بهمن ماه '
WHEN 12 THEN ' اسفند ماه '
END
/* DAY TO WORDS */
SELECT @datevalsword =CASE @dateval
WHEN 1 THEN 'اول'
WHEN 2 THEN 'دوم '
WHEN 3 THEN 'سوم '
WHEN 4 THEN 'چهارم '
WHEN 5 THEN 'پنجم '
WHEN 6 THEN 'ششم '
WHEN 7 THEN 'هفتم '
WHEN 8 THEN 'هشتم '
WHEN 9 THEN 'نهم '
WHEN 10 THEN 'دهم '
WHEN 11 THEN 'یازدهم '
WHEN 12 THEN 'دوازدهم '
WHEN 13 THEN 'سیزدهم '
WHEN 14 THEN 'چهاردهم '
WHEN 15 THEN 'پانزدهم '
WHEN 16 THEN 'شانزدهم '
WHEN 17 THEN 'هفدهم '
WHEN 18 THEN 'هجدهم '
WHEN 19 THEN 'نوزدهم '
WHEN 20 THEN 'بیستم '
WHEN 21 THEN ' بیست و یکم '
WHEN 22 THEN ' بیست و دوم '
WHEN 23 THEN 'بیست و سوم'
WHEN 24 THEN 'بیست و چهارم '
WHEN 25 THEN 'بیست و پنجم '
WHEN 26 THEN 'بیست و ششم '
WHEN 27 THEN 'بیست و هفتم '
WHEN 28 THEN 'بیست و هشتم '
WHEN 29 THEN 'بیست و نهم '
WHEN 30 THEN 'سیم '
WHEN 31 THEN 'سی و یکم '
END
/* YEAR TO WORDS */
set @thousand=floor(@yr/1000)
set @yr = @yr - @thousand * 1000
set @hundred = floor(@yr / 100)
set @yr = @yr - @hundred * 100
IF (@yr > 19)
begin
set @tens = floor(@yr / 10)
set @yr = @yr % 10
end
ELSE
set @tens=0
SELECT @thousandsword=CASE @thousand
WHEN 1 THEN ' یک هزار '
WHEN 2 THEN 'دو هزار'
WHEN 3 THEN 'سه هزار'
WHEN 4 THEN 'چهار هزار'
WHEN 5 THEN 'پنج هزار'
WHEN 6 THEN 'شش هزار'
WHEN 7 THEN 'هفت هزار'
WHEN 8 THEN 'هشت هزار'
WHEN 9 THEN 'نه هزار'
else ''
END
SELECT @hundredsword=CASE @hundred
WHEN 0 then ''
WHEN 1 THEN 'یک صد'
WHEN 2 THEN 'دویست '
WHEN 3 THEN 'سیصد '
WHEN 4 THEN 'چهارصد '
WHEN 5 THEN 'پانصد '
WHEN 6 THEN 'ششصد '
WHEN 7 THEN 'هفتصد '
WHEN 8 THEN 'هشتصد '
WHEN 9 THEN 'نهصد '
else ''
END
if (@hundred<>'')
set @hundredsword=' و '+@hundredsword
/*@tens To WORDS*/
SELECT @tensword=CASE @tens
WHEN 2 THEN 'بیست '
WHEN 3 THEN 'سی '
WHEN 4 THEN 'چهل '
WHEN 5 THEN 'پنجاه '
WHEN 6 THEN 'شصت '
WHEN 7 THEN 'هفتاد '
WHEN 8 THEN 'هشتاد '
WHEN 9 THEN 'نود '
ELSE ''
END
if (@tens<>'')
set @tensword=' و '+@tensword
/*ONES To WORDS*/
SELECT @onesword=CASE @yr
WHEN 0 THEN ''
WHEN 1 THEN 'یک '
WHEN 2 THEN 'دو '
WHEN 3 THEN 'سه '
WHEN 4 THEN 'چهار '
WHEN 5 THEN 'پنج '
WHEN 6 THEN 'شش '
WHEN 7 THEN 'هفت '
WHEN 8 THEN 'هشت '
WHEN 9 THEN 'نه '
WHEN 10 THEN 'ده '
WHEN 11 THEN 'یازده '
WHEN 12 THEN 'دوازده '
WHEN 13 THEN 'سیزده '
WHEN 14 THEN 'چهارده '
WHEN 15 THEN 'پانزده '
WHEN 16 THEN 'شانزده '
WHEN 17 THEN 'هفده '
WHEN 18 THEN 'هجده '
WHEN 19 THEN 'نوزده '
END
if (@yr<>'')
set @onesword=' و '+@onesword
return (@datevalsword+@monWord+@thousandsword+@hundredsword+ @tensword+' '+@onesword)
END
سلام.
خدا خیرتون بده.
خیلی به دردم خورد.
دستت درد نکنه خیلی به درد خورد