如何在SQL Server中将波斯日期转换为格里高利日期 [英] How to convert Persian date into Gregorian date in SQL Server

查看:0
本文介绍了如何在SQL Server中将波斯日期转换为格里高利日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

1394/05/14

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

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

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

这篇关于如何在SQL Server中将波斯日期转换为格里高利日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆