如何正确地将数字列转换为日期列?你好,
我有一个格式为“yyyymmdd”的日期列。 日期示例如下:20000111。 当我将数据从 csv 导入 JMP 时,该列被视为连续数字。 我将其格式设置为 date-yyyymmdd 并意识到它被视为 1904/1/1 过去的 20000111 秒。 我将列更改为字符、名义并尝试使用 informat() 对其进行转换,但无法使其正常工作。 该脚本如下所示: Informat( :New_Date, "yyyymmdd" ) New_Date 是列的名称。 我最终得到了一个空白列。 尝试使用 Char(New_Date) 将 New_Date 转换为字符串。 返回点。 无法理解为什么这么简单的任务无法完成。 顺便说一句,我不知道 JSL 并且使用了公式工具
谢谢!
自动化和脚本编写数据存取回复:如何正确地将数字列转换为日期列?这是一个向您展示如何进行转换的示例
- 打开包含字符日期值的数据表
- 创建一个新列并将其命名为“日期”
- 打开“列信息”对话框并将格式设置为“m/d/y”

- 打开新列的公式编辑器并输入
Date MDY(
Num( Substr( :New Date, 6, 2 ) ),
Num( Substr( :New Date, 9, 2 ) ),
Num( Substr( :New Date, 1, 4 ) )
)
将“新日期”更改为具有字符版本日期的列的名称
- 新列将显示日期的新数字版本

回复:如何正确地将数字列转换为日期列?Dan,将字符更改为数字然后应用日期格式的技巧确实令人鼓舞。不幸的是,当我点击“应用”和“确定”时,我的日期栏跳回到字符。该列保留为左对齐文本字段:2021-08-24。
我想要获取 JMP 日期编号,以便可以与其他带日期的文件合并。
一个可能的问题:数据被视为“left(longdate,10)”,去掉了时间值。 这会削弱我的转变吗?
回复:如何正确地将数字列转换为日期列?下面是一个示例,其中列值(在本例中仅填充一行)是数字,并且采用您指定的结构。

要将其更改为正确的 JMP 日期/时间列,我将这样做。
首先打开相关列的“列信息”对话框

为了让 JMP 能够使用 Informat 来识别这一点,将 20001101 转换为日期/时间值,输入列需要是字符,因此将数据类型更改为字符,然后单击应用

现在返回到打开的列信息对话框,将数据类型更改为数字,然后从格式列表中选择格式“yyyymmdd”。 再次点击“应用”

请注意,上图中显示的值保持不变。这是因为显示格式是“yyyymmdd”。另请注意,该列已更改回数字。
要验证它是否是真正的 JMP 日期/时间列,您可以将显示格式更改为其他日期格式。因此,返回“列信息”对话框,然后选择不同的日期格式。在我的示例中,选择“m/d/y”格式。然后点击应用

可以看到,正确的日期显示为 01/11/2000。
现在只需单击“确定”,该列就会根据需要进行转换。
回复:如何正确地将数字列转换为日期列?由于您将“新日期”列设置为字符串,因此使用以下公式应该有效:

它假设日始终为两个字符(因此第一个字符为 01),月份始终为两个字符,年份始终为 4 个字符。