نمایش نتایج 1 تا 3 از 3

نام تاپیک: چه طوری یک ستون که تاریخ شمسی هست رو در یک ستون دیگه به صورت میلادی تبدیل کنم ؟

  1. #1
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    چه طوری یک ستون که تاریخ شمسی هست رو در یک ستون دیگه به صورت میلادی تبدیل کنم ؟

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

    یک ستون دارم که به صورت NvarChar می باشد و تاریخ شمسی در اون ذخیره کردم ، حالا می خوام یک ستون جدید اضافه کنم و معادل تاریخ میلادی این ستون شمسی رو به صورت نظیر به نظیر داشته باشم

    آیا کدی چیزی براش هست ؟

  2. #2

    نقل قول: چه طوری یک ستون که تاریخ شمسی هست رو در یک ستون دیگه به صورت میلادی تبدیل کنم ؟

    بسم الله الرحمن الرحیم
    با سلام
    تنها تاریخ میلادی رو ذخیره بفرمائید و تو برنامه هر جا نیاز داشتید معادل شمسی اون رو بدست بیارید.
    موفق باشید.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: چه طوری یک ستون که تاریخ شمسی هست رو در یک ستون دیگه به صورت میلادی تبدیل کنم ؟


    USE [Nosakh]
    GO
    /****** Object: UserDefinedFunction [dbo].[ShamsiToMiladi] Script Date: 07/26/2013 15:26:34 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER FUNCTION [dbo].[ShamsiToMiladi](@FD nvarchar(10))
    RETURNS smalldatetime AS
    begin
    Declare @syy bigint
    Declare @smm bigint
    Declare @sdd bigint
    Declare @val bigint
    Declare @By bigint
    declare @mstart datetime
    declare @Mc int

    declare @sbase int
    declare @sleapbmp nchar(150)
    declare @ind as int



    -- set @fd='1384/02/11'
    set @mstart = '1900/03/21'

    set @syy = substring(@FD,1,4)
    set @smm = substring(@FD,6,2)
    set @sdd = substring(@FD,9,2)
    set @By = '1279'

    set @sleapbmp='000010001000100010001000100010000100010 00100010001000100010001000010001000100010001000100 010001000010001000100010001000100010001'
    set @sbase=475

    -- print @smm

    set @val = 0

    While (@By < @syy)
    begin

    set @ind = (@By - @sbase) % (128 + 1)
    if substring(@sleapbmp, @ind, 1) ='1'
    Begin
    set @val = @val + 1
    end

    set @val = @val + 365
    set @By = @By + 1
    end

    set @Mc=1
    while @mc< @smm

    begin
    Select @val =Case
    When @Mc= 1 Then @Val+31
    When @Mc= 2 Then @Val+31
    When @Mc= 3 Then @Val+31
    When @Mc= 4 Then @Val+31
    When @Mc= 5 Then @Val+31
    When @Mc= 6 Then @Val+31
    When @Mc= 7 Then @Val+30
    When @Mc= 8 Then @Val+30
    When @Mc= 9 Then @Val+30
    When @Mc= 10 Then @Val+30
    When @Mc= 11 Then @Val+30
    When @Mc= 12 Then @Val+29
    end
    set @mc=@mc+1
    end
    set @val = @val + @sdd
    return DATEADD(day,@val,@mstart )
    end


    حالشو ببررید !

تاپیک های مشابه

  1. سوال: چه طوری تاریخ شمسی رو به StimulReport پاس بدیم ؟!
    نوشته شده توسط NasimBamdad در بخش C#‎‎
    پاسخ: 15
    آخرین پست: شنبه 21 اردیبهشت 1392, 11:11 صبح
  2. تاریخ شمسی در فرم های asp
    نوشته شده توسط bernadet730 در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: شنبه 16 آذر 1387, 12:42 عصر
  3. مقاله: استفاده از تاریخ شمسی در برنامه‌ها
    نوشته شده توسط linux در بخش VB.NET
    پاسخ: 15
    آخرین پست: چهارشنبه 16 مهر 1382, 06:29 صبح
  4. تاریخ شمسی - میلادی
    نوشته شده توسط SReza1 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: دوشنبه 10 شهریور 1382, 23:12 عصر
  5. چطور میتونم یه تاریخ میلادی رو به شمسی تبدیل کنم
    نوشته شده توسط yussof در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: سه شنبه 07 مرداد 1382, 17:33 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •