如何在SQL Server中将整数日期(5位数)格式化为yyyy-mm-dd?

时间:2016-01-08 23:39:31

标签: sql clarion

我有一个数据库,其中包含名为fSystemDate,fOpenned,fStatusDate等的整数字段(列)...我认为它们代表日期,但我不知道它们的格式。这些字段中的值是这些:76505,76530,76554,76563。 我没有与它们相关的实际日期的例子。

解决。见答案。

2 个答案:

答案 0 :(得分:2)

我发现这种格式是名为Clarion的编程语言的一部分,他的日期编号从1800年12月28日开始。 我可以通过两种方式将号角数据转换为sql日期:

  1.   

    SELECT DATEADD(day,76505,' 28-12-1800')

    结果将是2010-06-15 00:00:00。

  2.   

    SELECT CONVERT(DateTime,76505 - 36163)

    结果相同。数字36163用于调整SQL。这是1900年1月1日(MSSQL日期时间编号开始)和28-Dec-1800(Clarion日期时间编号开始)之间的天数。

  3. 我的案例中的结果是正确的,因为我向他们(我的客户)询问了您的应用程序中的数据示例并比较了信息。

答案 1 :(得分:0)

给出一个数字很难帮助你。看起来您的日期是某种序列号。但没有任何其他数据点

  • epoch。时代是历法系统的零点。

  • 增量。序列号中的 tick 有多大? 1天? 1小时1分钟?一周?一个月?

  • 源硬件/操作系统。从哪个计算机系统中产生了价值?不同的系统使用具有不同时期的不同日历系统以不同方式表示日期。

  • 源软件系统。什么软件创造了价值?是定制软件吗?它写的是什么语言?什么时候?什么是数据的后备存储?数据库,文件系统等可能都有自己的内部日期表示。

  • 代表的值。如果76563确实是日期的表示,它代表什么日期?或者至少,它代表了最近的约会吗?过去的约会?未来的约会?

回答你的问题是不可能的。此页面可能对您有所帮助:

http://www.itworld.com/article/2823335/data-center/128452-Just-dating-The-stories-behind-12-computer-system-reference-dates.html

它列出了不同计算机系统的一些常见时期:

已编辑注意:此处为您提供了一个数据点:将截至2014年1月1日的76,563天添加为16 August 2009