2201_75627348 2023-09-05 17:44 采纳率: 100%
浏览 20
已结题

SAS iso8601

iso8601:

            1)
TRTSDTM=input(RFXSTDTC,e8601dt.);
                 format TRTSDTM e8601dt.; 

常见报错:函数input的参数无效

正确写法:2)

TRTSDTM=input(RFXSTDTC,b8601dt.);
                 format TRTSDTM e8601dt.; 

注:当字符串中同时有 date 和 datetime 日期时,就只能用 B8601DT.

b8601dt.,既可以作为输出格式也可以作为输入格式,如果在input中使用(作为输入格式),则把原来字符型的带T连接符的时间日期格式变为sas数值型时间日期值。

求解答?b8601dt. e8601dt. is8601dt.区别怎么用?为什么1)会报错:函数input的参数无效?

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-09-05 18:07
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    在SAS中,b8601dt.、e8601dt.和is8601dt.是日期和时间格式的选项。这些选项用于指定日期和时间的输入和输出格式,具体区别如下:

    1. b8601dt.(Basic ISO8601日期时间格式):b8601dt.格式用于将ISO 8601格式的日期和时间字符串转换为SAS的日期和时间值,并将其存储为SAS数值型变量。它可以作为输入和输出格式使用。

    2. e8601dt.(Extended ISO8601日期时间格式):e8601dt.格式也用于将ISO 8601格式的日期和时间字符串转换为SAS的日期和时间值,并将其存储为SAS数值型变量。它可以作为输入和输出格式使用。与b8601dt.相比,e8601dt.允许使用扩展的日期和时间表示形式,例如带有毫秒和时区信息。

    3. is8601dt.(ISO8601日期时间格式):is8601dt.格式是一个组合格式,它根据输入字符串的具体格式自动选择适当的格式进行解析。它可以用作输入格式,但不适用于输出格式。

    对于您提到的报错问题,当使用e8601dt.格式时,函数input可能会报错"函数input的参数无效",这可能是因为输入的日期时间字符串的格式不符合e8601dt.所要求的ISO 8601格式。在这种情况下,您应该尝试使用b8601dt.格式,因为它更宽松,可以处理带有T连接符的日期时间格式。

    总结:

    • 使用b8601dt.格式将ISO 8601格式的日期和时间字符串转换为SAS数值型变量。
    • 使用e8601dt.格式同样可以将ISO 8601格式的日期和时间字符串转换为SAS数值型变量,但它支持更多的扩展日期时间表示形式。
    • is8601dt.是一个自动选择输入格式的组合格式,不适用于输出格式。

    请确保您的输入日期时间字符串与所选择的格式相匹配,以避免输入错误。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月14日
  • 已采纳回答 9月6日
  • 创建了问题 9月5日

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳