How to convert Persian date into Gregorian date in SQL Server(如何在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中将波斯日期转换为格里高利日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!