如何在SQL Server中将波斯日期转换为格里高利日期格里、波斯、日期、转换为

2023-09-03 12:52:40 作者:不靠谱先生

我的sql server表中有一些波斯日期,格式如下:

1394/05/14

我必须使用stored procedure将其转换为公历日期,因为我需要将其与今天的日期进行比较。

在SQL语句里面如何将字符型转换成数字型

有人知道解决方案吗?我找到了一些代码,但它们在闰年之类的时候有问题。

btw我在C#中有以下代码,但我认为我必须使用sql server proc,因为此过程应按固定计划执行。

    public static DateTime ConvertToGregorianDate(string persianDate)
    {
        PersianCalendar pcalendar = new PersianCalendar();
        int Year = int.Parse(persianDate.Split('/')[0]);
        int Month = int.Parse(persianDate.Split('/')[1]);
        int Day = int.Parse(persianDate.Split('/')[2]);
        return new DateTime(Year, Month, Day, pcalendar);
    }

提前感谢。

推荐答案

几种不同的方法

1)使用SQL CLR从SQL Server中运行C#代码

2)在T-SQL中查找或编写正确的波斯语<;->格里高利转换实现

3)针对您关心的所有日期运行C#代码,并将输出转储到一个文件。将该文件导入到表中。当您需要转换时,只需查找答案。

选项(3)可能是最简单、最易维护、性能最好的解决方案。约会的好处是,约会的人真的并不多。一个一百年的日程表只有千字节的内存,而数据库非常擅长进行查找。