将字符列更改为日期列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
假设我们有一个表,其中有一列字符类型,日期格式为“dmy”。 给出的例子:
| 人物日期 |
|---|
| 2015年8月5日 |
| 2016年3月17日 |
| 2016年5月12日 |
我现在想将字符日期转换为数字日期。 我知道这是一个常见问题,有很多东西需要阅读。 但是,我不明白的是以下内容:
如果我右键单击该列,进入列信息并将数据类型更改为数字,然后选择“dmy”作为格式,一切都很好。 所有日期均已正确转换。 但是如果我运行以下脚本:
Column("字符日期") << 数据类型(数字) << Informat("dmy") << Format("dmy");
或者
Column("字符日期") << 数据类型(数字) << 格式("dmy");
仅第一行和第三行被正确转换。 我们的示例列的第二行之后为空,大概是因为格式被误解为“mdy”。
这些方法(脚本/手动)怎么可能导致不同的结果? 我该怎么做才能使脚本方法发挥作用?
谢谢你!
回复:将字符列更改为日期列JMP 并不总是在 info 处使用 mdy 格式。
如果第一行中的第一个日期适合 mdy,则它使用 mdy 格式 - 无论其余行中的内容如何。
如果第一行只能适合 dmy 格式,则使用该格式。 因此,在测试时,一切看起来都很好,直到导入的行适合 mdy 格式...... 在美国,这当然不是问题,因为所有日期都以 mdy 格式显示
JMP 15.1.0 中仍然存在这种情况,我希望这个问题能在一段时间内得到解决,因为在 JMP 中处理导入日期仍然很痛苦,尽管 .csv 和 excel 导入方面有了一些改进。
回复:将字符列更改为日期列谢谢女士。 “区域设置日期”完成了这项工作。 但是,仍然存在 For Each 循环。 但我会花钱寻找不同的解决方案。
同时我们发现,如果您想将数字日期从 MS SQL 数据库传输到 JMP,安装适当的 ODBC 驱动程序非常重要。 “SQL Server”驱动程序不允许我们导入数字日期,但“ODBC Driver 11 for SQL Server”可以。
回复:将字符列更改为日期列非常非常棒
回复:将字符列更改为日期列你可以尝试区域设置日期格式。
Column("字符日期") << 数据类型(数字) << 格式("区域设置日期");
回复:将字符列更改为日期列谢谢尼尔森的回答。 我运行脚本,刚刚在“字符日期”列中获得了时间戳。 不过,我不明白为什么 JMP 忽略 Format 命令。 我的系统:德国 Windows 7 上的 JMP 12.2.0(UTC+1;dmy)。
目前,我正在尝试避免 For Each Row - 脚本循环,该脚本自动将所有带有日期的字符列转换为数字日期。 我有这样的解决方案,但它真的很慢。 因此我提出了上面的问题。
回复:将字符列更改为日期列显然,JSL 中存在正确执行转换的问题。它似乎总是使用“m/d/y”作为信息。下面的脚本将进行转换
名称默认为此处( 1 ) ;
尝试(关闭(数据表( “测试” ) ,不保存)) ;
dt =新表( “测试” ,
添加行( 3 ) ,
新专栏( 《人物日期》 ,
特点,
“名义” ,
设置值({ “2015 年 8 月 5 日” , “2016 年 3 月 17 日” , “2016 年 5 月 12 日” } )
)
) ;
对于每一行(
:人物日期=子字符串( :人物日期, 4 , 2 ) || “。” ||
子字符串( :人物日期, 1 , 2 ) || “。” ||子字符串( :人物日期, 7 )
) ;
柱子( “人物日期” ) <<数据类型(数字) <<格式( “日/月/年” ) ;