如何正確地將數字列轉換為日期列?你好,
我有一個格式為“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 個字符。