从数字字符串覆盖你好
我想将数值隐藏到日期中。 我在这里尝试了许多示例脚本,但没有用。
我在应该转换的列中有 14 位数字,例如 20200420221043。 我想要 yyyy-mm-ddThh:mm:ss 类型。 因此,似乎是 2020-04-20T22:10:43。
有任何想法吗?
回复:从数字字符串中覆盖我试过这个脚本,效果很好。
特别是,'wait()' 让我很开心。
回复:从数字字符串中覆盖很好的参考。回复:从数字字符串中覆盖我需要为此添加书签。 谢谢。回复:从数字字符串中覆盖很好的参考。
回复:从数字字符串中覆盖你好@KrissKdash ,
另外,一定要看视频医生解决您的日期和时间导入问题。
在最近播出的这个片段中@brady_brady逐步演示如何解决这些类型的日期问题。
干杯,
斯坦
回复:从数字字符串中覆盖你好,
有一个专门针对此类问题的插件。 在此处找到插件和如何使用它的说明:数据表工具,第 1 部分:自定义日期公式编写器
打开插件文件进行安装后,它将位于 JMP 主菜单的“插件”部分。 选择:加载项 > 数据表工具 > 特殊公式列 > 自定义日期公式编写器。
在公式编写器的主窗口中,选择您的数据表和源数据列——确保将您的数据设置为字符和标称类型。
然后,如下所示填写对话框的其余部分,确保在所有感兴趣的字段的开头和结尾放置刻度线。 (单击可打开和关闭刻度线。)
单击“构建公式列”,您就完成了。 (下面是自动编写的公式的示例。)请注意,各个地方都有零和空括号,表示当前公式中未使用的选项。 这是预期的。
干杯,
布雷迪

Try(
{};
YearChoice = 1;
{};
{};
Date MDY(
Num( Substr( :DateStr, 5, 2 ) ),
Num( Substr( :DateStr, 7, 2 ) ),
Num( Substr( :DateStr, 1, 4 ) ) + 0
) + Num( Substr( :DateStr, 13, 2 ) ) + Num( Substr( :DateStr, 11, 2 ) ) * 60 + (
Num( Substr( :DateStr, 9, 2 ) ) + 0) * 3600 + If( Num( Substr( :DateStr, 9, 2 ) ) < 12,
0,
0
);
)
回复:从数字字符串中覆盖@KrissKdash ,
以防万一您想要一个格式为数字日期的列,这里有一个脚本可以做到这一点。 它创建一个 1 列表。 延伸@txnelson的解决方案,字符串列称为 myS。 该脚本创建一个日期列 myD。 这等待(2)添加戏剧效果。
只是第二种方法。
Names Default to Here(1);
dt = New Table( "Test",
Add Rows( 3 ),
New Column( "myS",
Character,
"Nominal",
Set Values( {"20200420221053", "20200419112025", "20191225055920"} )
)
);
dt << New Column("myD", Numeric, Continuous);
Column(dt,"myD") << set each value(Informat(substr(:myS,1,8), "YYYYMMDD") + num(Substr(:myS,9,2))*60*60
+ num(substr(:myS,11,2))*60 + num(substr(:myS,13,2)) );
wait(2);
:myD << Format("yyyy-mm-ddThh:mm:ss", 19, 0);
回复:从数字字符串中覆盖这是你想要的?
myS = "20200420221043";
datex = Informat(
Substr( myS, 1, 4 ) || "/" || Substr( myS, 5, 2 ) || "/" || Substr( myS, 7, 2 ) || " " ||
Substr( myS, 9, 2 ) || ":" || Substr( myS, 11, 2 ) || ":" || Substr( myS, 13, 2 ),
"y/m/d h:m:s"
);
Show( Format( datex, "yyyy-mm-ddThh:mm:ss" ) );
Format(datex, "yyyy-mm-ddThh:mm:ss") = "2020-04-20T22:10:43";