sas - SAS EG 迄今为止在不同的机器上获得不同的结果 - 或者 SAS 语言环境设置在哪里?
问题描述
有字符串"09/07/2019 20:40:01 EDT"
在连接到远程 UNIX 服务器的 SAS EG 7.1 中运行命令
input(substr(event_time, 1, length(event_time)-4),anydtdtm23.) format DateTime23.3 as event_time
一台机器在 2019 年 9 月 7 日正确返回。(为了清楚起见,删除时间位)另一台机器在 2019 年 7 月 9 日返回。
根据我在相关问题中所读到的内容,这似乎是由语言环境设置引起的
什么管理 SAS 区域设置?是我的操作系统吗?远程 UNIX 服务器?SAS EG 设置中的某些内容?
谢谢
解决方案
除非必须,否则不要使用猜测程序。ANYDT... 系列信息将假定模棱两可的 MDY 或 DMY 字符串遵循 SAS 会话的当前语言设置的自定义。因此,如果 SAS 认为您在英格兰,那么“09/07/2019”看起来就像是 7 月 9 日。但如果你在美国,那么它看起来像 9 月 7 日。
而是使用 MMDDYY 或 DDMMYY 信息读取字符串,具体取决于字符串实际存储的格式。如果您的源实际上使用混合的月日排序样式,则编写代码,使用您的数据中的信息来选择正确的信息格式特定的观察而不是强迫 SAS 使用您的会话设置来决定使用哪一个。
推荐阅读
- r - 如何运行具有多个随机因素的广义线性混合模型 (GLMM)?
- javascript - 类型错误:.push 未定义
- sql - 试图在 postgresql 查询中的窗口中获得积极或消极的差异
- azure - azure 存储公共网站通过 azure 域控制器控制访问
- android - 如何为接收 LiveData 作为输入的微调器编写绑定适配器?
- python - 如何使用基于 l1 和 l2 正则化的逻辑回归?
- python - Pandas 在单元格中对字符串进行排序
- haskell - 如何解决相同包的不同版本范围的依赖树?
- reactjs - 如何使用 npm run buildf 修复此解析器错误?
- javascript - 如何修复与已发布内容不同的标题?