在本博客中,我将讨论在Teradata SQL代码中发现的一个特定用例,我们使用SAP Advanced SQL Migration为两个不同的客户分析和转换了该代码。客户开发的源代码在表或变量中有datetime列,直接与数值进行比较,返利商城系统开发,淘客什么意思,这意味着Teradata执行从日期到数字的隐式转换,公有云市场,反之亦然。这是一个显示以下内容的查询示例:
从中选择,…其中=80991231
其中定义为日期数据类型。
Teradata文档清楚地表明日期值可以按照公式转换为数字数据类型:
当日期转换为数字时,返回的值是内部存储日期的整数值,云服务器是什么,使用以下公式进行编码:
(年–1900)*10000+(月*100)+日
允许的日期值范围为公元0001年1月1日至公元9999年12月31日。
更多详细信息可在此链接中找到:Teradata日期到数字转换
注意:Microsoft SQL服务器也允许类似的比较/转换,但语义非常不同,请查看此链接以了解更多详细信息(SQL Server日期到数字的转换)。
此段SQL代码显示了这些东西在Teradata中的工作方式:
SAP Advanced SQL Migration提供2个RTC(运行时组件),即sp_f_dbmtk_convert_date_as_int&sp_f_dbmtk_convert_int_as_date,要执行此转换,工具正在检测(检查列、表变量和值)何时必须在Hana中执行显式转换,手机免费建站,检查转换此Teradata查询的示例:
select*from test\u date where d