مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

روش تبدیل تاریخ از شمسی به میلادی؟؟

دوشنبه, 02 اردیبهشت 1398 17:07

روش تبدیل تاریخ از شمسی به میلادی؟؟

دوستان کسی میدونه چطوری میشه کل تاریخ های ثبت شده در دیتا بیس SQL رو از شمسی به میلادی تبدیل کرد؟؟ یا راهی روشی چیزی میتونید پیشنهاد بدین ؟

دوشنبه, 02 اردیبهشت 1398 17:39

سلام

فانکشن زیر را اجرا کن

CREATE FUNCTION [dbo].[GregorianDate] ( @ADate VARCHAR(10) )
RETURNS INT
AS
    BEGIN
        DECLARE @BaseDate INT  
        DECLARE @LongYearCounter FLOAT
        DECLARE @BaseYear INT
        DECLARE @PersianYear INT
        DECLARE @PastYears INT
        DECLARE @LongYearNum INT      
        DECLARE @PersianMonth INT
        DECLARE @PersianDay INT
        DECLARE @TotalDay INT

        SET @BaseDate = -11243
        SET @BaseYear = 1248
        SET @LongYearCounter = 4.1290322580645161290322580645161
        SET @PersianYear = CAST(SUBSTRING(@ADate, 1, 4) AS INT)
        SET @PersianMonth = CAST(SUBSTRING(@ADate, 6, 2) AS INT)
        SET @PersianDay = CAST(SUBSTRING(@ADate, 9, 2) AS INT)
        SET @PastYears = @PersianYear - @BaseYear
        SET @LongYearNum = FLOOR(( @PastYears + 0.9 ) / @LongYearCounter) 

        IF @PersianMonth <= 6
            SET @TotalDay = ( @PastYears * 365 ) + ( ( @PersianMonth - 1 )
                                                     * 31 ) + @PersianDay - 1
        ELSE
            SET @TotalDay = ( @PastYears * 365 ) + ( ( @PersianMonth - 1 )
                                                     * 30 ) + 6 + @PersianDay
                - 1

        SET @TotalDay = @TotalDay + @LongYearNum
        SET @BaseDate = @BaseDate + @TotalDay 

        RETURN @BaseDate 
    END

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید