如何在 Netezza 中将整数字段转换为日期?

Posted

技术标签:

【中文标题】如何在 Netezza 中将整数字段转换为日期?【英文标题】:How to convert an integer field into a date in Netezza? 【发布时间】:2013-12-10 20:05:02 【问题描述】:

我有一个具有日期值的整数字段,但我想将其转换为日期字段。我尝试了几种方法,但没有成功。该字段具有日期值,但存储为整数。这是我尝试过的:

  cast(MYFIELD AS DATE) AS MYCOLUMN

但我收到此错误“无法将类型 INT4 转换为 DATE”。 我做了几项研究,但找不到适合 netezza 的解决方案。

【问题讨论】:

日期的整数值是什么样的? 这就是它的样子:201004 如何知道如何将该数字转换为日期?有什么标准可以遵循吗? 此数据正在其他一些地方使用,因此数据类型必须是日期格式才能用于其他目的 如何将“201004”翻译成日期?年、月、日是什么?一旦你有了它,你就可以将它转换成 SQL 可以使用的日期格式。 【参考方案1】:

您可以连接01,然后运行to_date

select to_date(201004||'01','YYYYMMDD')

【讨论】:

【参考方案2】:

我不认为这是你可以做的事情,至少不是以明显的方式。人类可以用数百种方法将日期表示为 int,因此不会内置转换。int 可能类似于 20120415 或 04152013 或数百种其他格式,而日期可能类似于 '2012-04- 15' 我建议您查看How i can get the first 3 digits in 123456 Numbers in sql? 的最佳答案并手动提取您的数据。您应该做的是将字段转换为真实日期字段并编辑依赖项以期望该格式。

【讨论】:

以上是关于如何在 Netezza 中将整数字段转换为日期?的主要内容,如果未能解决你的问题,请参考以下文章

在netezza sql中将整数转换为二进制

在 Netezza 中将带分数转换为浮点数

在 Netezza 中将数字时间值转换为字符串

如何在 Presto/Hive 中将日期格式 YYYY-MM-DD 转换为整数 YYYYMMDD?

在代码隐藏中将日期转换为整数

如何在 DB2 AS/400 中将十进制字段转换为日期字段?