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

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

کاربر سایت

rasool65

عضویت از 1394/09/18

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

  • دوشنبه 2 اردیبهشت 1398
  • 17:07
تشکر میکنم

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

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • دوشنبه 2 اردیبهشت 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

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)