我正在使用链接的基于Oracle的服务器在SQL Server 2012中工作。我正在尝试将已知日期字段(Oracle)转换为SS中的DATE格式。例如:
Have ------> Need
115001 | 01/01/2015
116366 | 12/31/2016
我看到了这种模式,但是我不知道a)这是哪种格式(Oracle专有?)或b)如何在没有一堆函数的情况下将其转换为字符串。我以为是朱利安,但我浏览过的每个朱利安转换器都告诉我,这不是朱利安日期!同样,我使用T-SQL而不是Oracle SQL进行编码。
任何见识表示赞赏!谢谢!
如果有问题的奇数日期格式是数字值,那么您可以执行以下操作:
SELECT DATEADD(day, odd_date % 1000 - 1, DATEADD(year, FLOOR(odd_date/1000), '1900-01-01'))
FROM my_odd_date_table;
也就是说,我们首先将20世纪的第一天odd_date
除以1000年(这将给我们指定年份的第一天),然后以odd_date
模1000减去一日。这应该适用于20世纪(例如95101
)和21世纪等的价值观。
如果odd_date
是VARCHAR而不是数字值,则仍可以CAST
通过将其转换为数字来使用上面的值。但是,如果一个或多个值中的数据不正确,则可能会很困难。
我不认为您对链接的Oracle表中数据的存储方式有任何控制或影响?日期应存储为日期(这就是DBMS具有日期数据类型的原因)。我已经看到了一些奇数日期格式,但是这种格式可能是最奇数的。有人会在具有强大的日期算术和功能(更好的IMHO,而不是SQL Server的日期)的Oracle中执行此操作似乎特别奇怪。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句