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

نام تاپیک: تبدیل رشته به تاریخ

  1. #1

    تبدیل رشته به تاریخ

    سلام
    یک فیلد تاریخ از نوع Char(10) دارم که تاریخ شمسی در دیتابیس ذخیره میکنم
    الان نیاز دارم با توابع تاریخ کار کنم و برای این کار باید تاریخ شمسی به میلادی تبدیل کنم
    روش تبدیل رشته به datattime

  2. #2

    نقل قول: تبدیل رشته به تاریخ

    create FUNCTION [dbo].[Shamsi2Miladi](@FD NCHAR(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)+1
    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

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

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