在SAS中将格式从时间更改为数据时间格式

在SAS中将格式从时间更改为数据时间格式,sas,Sas,目前,我有时间格式的日期列,我想将其更改为日期时间戳格式,即(我希望日期列看起来像12nov 2020 12:03:45:00) 有人能帮我吗?根据 SAS日期是天数计数,SAS日期时间是秒计数 将日期转换为日期时间。或者乘以86400 据 SAS日期是天数计数,SAS日期时间是秒计数 将日期转换为日期时间。或者乘以86400 显示时间表示形式的列可以是以下三项之一: 包含数字字符0-9和的字符列类型: 一种数字列类型,包含一个SAS时间值,显示为hh:mm:ss,时间格式为TIME8。 一种数

目前,我有时间格式的日期列,我想将其更改为日期时间戳格式,即(我希望日期列看起来像12nov 2020 12:03:45:00) 有人能帮我吗?

根据

SAS日期是天数计数,SAS日期时间是秒计数

将日期转换为日期时间。或者乘以86400

SAS日期是天数计数,SAS日期时间是秒计数

将日期转换为日期时间。或者乘以86400


显示时间表示形式的列可以是以下三项之一:

  • 包含数字字符
    0
    -
    9
    的字符列类型:
  • 一种数字列类型,包含一个SAS时间值,显示为
    hh:mm:ss
    ,时间格式为
    TIME8。
  • 一种数字列类型,包含一个SAS日期时间值,显示为
    hh:mm:ss
    ,日期时间格式为
    TOD.
  • 此示例程序演示了不同类型的值在查看时如何看起来相同

    data have;
      v1 = '12:34:56';
      v2 = hms(12,34,56);
      v3 = dhms(today(),12,34,56);
    
      put v1= / v2= time8. / v3=tod. / v3=datetime18.;
    run;
    ------ LOG ------
    v1=12:34:56
    v2=12:34:56
    v3=12:34:56
    v3=25NOV20:12:34:56
    
    
    只有#3在原始值中有足够的信息可以格式化为
    ddmmmyyy:hh:mm:ss

    format myDate datetime18.;
    
    #2需要计算一个新的值,假设日期部分有一些内容

    * supposing myDate contains only time values (00:00:00 to 23:59:59) for today;
    
    myNewDate = dhms(today(),0,0,0) + myDate;
    format myNewDate datetime18.;
    
    #1需要通过
    输入进行解释和日期假设

    * supposing myDate contains "hh:mm:ss" for today
    
    myNewDate = dhms(today(),0,0,0) + input(myDate,time8.);
    format myNewDate datetime18.;
    

    显示时间表示形式的列可以是以下三项之一:

  • 包含数字字符
    0
    -
    9
    的字符列类型:
  • 一种数字列类型,包含一个SAS时间值,显示为
    hh:mm:ss
    ,时间格式为
    TIME8。
  • 一种数字列类型,包含一个SAS日期时间值,显示为
    hh:mm:ss
    ,日期时间格式为
    TOD.
  • 此示例程序演示了不同类型的值在查看时如何看起来相同

    data have;
      v1 = '12:34:56';
      v2 = hms(12,34,56);
      v3 = dhms(today(),12,34,56);
    
      put v1= / v2= time8. / v3=tod. / v3=datetime18.;
    run;
    ------ LOG ------
    v1=12:34:56
    v2=12:34:56
    v3=12:34:56
    v3=25NOV20:12:34:56
    
    
    只有#3在原始值中有足够的信息可以格式化为
    ddmmmyyy:hh:mm:ss

    format myDate datetime18.;
    
    #2需要计算一个新的值,假设日期部分有一些内容

    * supposing myDate contains only time values (00:00:00 to 23:59:59) for today;
    
    myNewDate = dhms(today(),0,0,0) + myDate;
    format myNewDate datetime18.;
    
    #1需要通过
    输入进行解释和日期假设

    * supposing myDate contains "hh:mm:ss" for today
    
    myNewDate = dhms(today(),0,0,0) + input(myDate,time8.);
    format myNewDate datetime18.;
    

    请显示有关该变量的更多详细信息。变量的类型是什么(数字或字符)。它当前是否附加了格式?如果是,格式是什么。显示一些示例值。使用当前格式显示值,也可以不使用格式(或对数字使用BEST,对字符使用$)。显示示例值的值(或格式化值时要显示的字符串)。请显示有关变量的更多详细信息。变量的类型是什么(数字或字符)。它当前是否附加了格式?如果是,格式是什么。显示一些示例值。使用当前格式显示值,也可以不使用格式(或对数字使用BEST,对字符使用$)。显示示例值的值(或格式化值时要显示的字符串)。在应用format datetime18时,时间格式列的值为995124。时间列上的值更改为09JUL73:12:52:31。您能告诉我我哪里出错了吗?原因是年份看起来很奇怪。在应用格式datetime18时,时间格式列的值为995124。在时间列上,值更改为09JUL73:12:52:31。你能告诉我我哪里出错了吗?因为年份看起来很奇怪。我的时间列有995124、1005424等值。你能告诉我如何将这些时间值更改为日期时间格式吗?这些数字与当前的日期时间数字不对应。这些数字(以秒计)分别对应约276小时和约279小时。这些值来自何处?您是否有其他值可与之对比?我的时间列有995124、1005424等值。您能否告诉我如何将这些时间值更改为日期时间格式?这些数字与当前的日期时间数字不对应。这些数字(以秒计)分别对应约276小时和约279小时。这些值来自何处?您是否有其他值可与之对比?