【发布时间】:2012-01-12 20:34:29
【问题描述】:
我想知道如何在 Java 中创建一个表达式,该表达式采用格式为“1999-12-30 12:34:45”的日期变量并将其转换为包含“19991230”的 Int。
这可能是其他人会喜欢的,尤其是人们提取和清理数据以加载到数据仓库中。
我的猜测是需要更改日期模式,转换为字符串,截断第一部分(8 个字符)并转换为 int。
想法?
(更新) 我不好解释这个问题。 生成的 int 将作为日期维度的键/Fk id。应该执行类似的操作来创建时间维度的键。 int 将减少在存储这些 int 键的事实表中消耗的大小。查看相关答案:https://stackoverflow.com/a/8416548/1132571
【问题讨论】:
-
你描述的操作是微不足道的。但是,我认为没有人会使用它。大多数人使用真实数据或 unixtime。
-
为什么要将
Date存储为Integer? -
@mre:整数是整数。简单、小型(取决于)、跨平台。
-
我认为你的意思是截断前 10 个字符或前 8 个数字。如果您以日期而不是字符串开头,为什么不从一开始就将其格式化为“yyyyMMdd”?
-
源系统提供的格式为 yyyy-MM-dd hh:mm:ss,我希望有一个“单行”将其转换为 (1) 日期键(int) 和 (2 - 单独的问题) 另一个时间键 (int) 由 "hhmm" 作为 int 组成
标签: java date data-warehouse etl