برنامه نویس

به وبلاگ خودتان خوش آمدید.

برنامه نویس

به وبلاگ خودتان خوش آمدید.

تبدیل تاریخ شمسی به حروف در sql

تابع 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



نظرات 2 + ارسال نظر
علی یکشنبه 21 آذر‌ماه سال 1395 ساعت 11:51 ق.ظ http://www.a00b.com/

سلام.
خدا خیرتون بده.
خیلی به دردم خورد.

bahman شنبه 7 اردیبهشت‌ماه سال 1398 ساعت 02:27 ب.ظ

دستت درد نکنه خیلی به درد خورد

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد