将字符日期时间转换为日期时间难以转换为数字日期时间。
JMP 日志错误:“日期-时间”列更改为字符类型以匹配公式。
日期::时间原始格式:
01:28:2018::02:14:08:099
我正在尝试做的事情(经过各种帖子的多次尝试):
dt<< new column ("Date-Time", numeric, formula(
rawdate = substitute(trim(substr(:TimeStamp,1,10)),":","/");
rawtime = (trim(substr(:TimeStamp,13,12)));
datetme = rawdate || " " || rawtime;
//informat(datetime);
//as date(datetme);
)
) ;
Informat() 和 as date() 给我“.”结果
回复:将字符日期时间转换为日期时间感谢 TxNelson 的及时回复! 这很完美!
由于我正在尝试绘制数据图表,因此我找到了一种解决方法,将列保留为数字格式,其中包含自 1904 年以来的秒数,然后将图表的轴更改为适当的日期格式。
但是,我更喜欢您的解决方案,因为它直接解决了我的意图。
非常感谢您的支持!
回复:将字符日期时间转换为日期时间您缺少的是使用格式来指示 JMP 获取数字日期值并以日期格式显示它的理解。对 JSL 的修改将向您展示使代码正常工作的简单更改。
dt << New Column( "Date2",
Numeric,
"Continuous",
Formula(
Date MDY(
Num( Substr( :New_Date, 1, 2 ) ),
Num( Substr( :New_Date, 4, 2 ) ),
Num( Substr( :New_Date, 7, 4 ) )
)
),
Format( "m/d/y", 10)
);
回复:将字符日期时间转换为日期时间你好,
我查看了几篇文章来解决同样的问题,并且仍然遇到根据日志文件中的评论转换回字符“以匹配公式”的列。
我有一个表格,其中包含字符串格式的日期列“新日期”,条目格式为“MM/DD/YYYY”
我尝试将您的解决方案应用于本专栏:
dt << New Column ("Date2", Numeric, "Continuous",
Formula ( Date MDY(Num( Substr( :New_Date, 1, 2 ) ),
Num( Substr( :New_Date, 4, 2 ) ),
Num( Substr( :New_Date, 7, 4 ) ))));
这将创建一个采用标准 JMP 日期格式(以秒为单位)的数字日期列(例如“3651955200”),表示 2019 年 9 月 22 日。
然后我创建了另一列将其转换为标准日期格式:
dt << New Column ("Date3", Numeric, "Continuous", Formula ( Abbrev Date(Date2)));
但是当我运行它时,运行它只是将数据转换回字符格式......
Column "Date3" changed to type Character to match formula.
您能帮助完成正确的转换程序吗?
我已经没有选择可以尝试了...
感谢您的任何帮助,您可以提供。
-延斯
回复:将字符日期时间转换为日期时间作为@tx尼尔森说,我们可以使用更多细节和示例,但您可能只需要指定要以列格式显示的小数位数。

回复:将字符日期时间转换为日期时间您能否提供字符串日期时间列的示例。 我假设您所要做的就是去掉秒和毫秒,将该字符串转换为数字,然后将其添加到 JMP 日期/时间值的计算中。回复:将字符日期时间转换为日期时间这里有一个简单的问题;
如果我们想在时间格式中保留秒(毫秒)的小数点后三位,我们如何在公式中保留它?
非常感谢新手。回复:将字符日期时间转换为日期时间这工作完美无缺。 我在脚本中添加了列属性:连续,格式(“月/日/年:月:秒”)。
我不是软件工程师或相关人员,只是想破解这个问题。 我想我不明白 JMP 中的日期和时间如何工作。时间戳不需要采用“MM/DD/YYYY hh:mm:ss:msc”格式? 从我在其他帖子中发现的内容来看,我认为这是从字符转换为日期/时间时的正确格式。我还看到您单独获取每个数字,然后更改类型,我假设 JMP 无法处理与数字混合的字符输入?
再次非常感谢您的帮助。非常感激。
回复:将字符日期时间转换为日期时间这是我想出的转换公式
Date MDY(
Num( Substr( :TimeStamp, 1, 2 ) ),
Num( Substr( :TimeStamp, 4, 2 ) ),
Num( Substr( :TimeStamp, 7, 4 ) )
)
+ 3600 * Num( Substr( :TimeStamp, 13, 2 ) )
+ 60 * Num( Substr( :TimeStamp, 16, 2 ) )
+Num( Substr( :TimeStamp, 19, 2 ) )
我为新列指定 m/d/yh:m:s 格式