2010-11-03 125 views
2

是否有任何人知道PROC SQL或数据步骤具有这样的功能,我可以日期时间值转换为:15分钟例如间隔:分钟间隔或PROC SQL

03NOV2010:00:00:02 --> 0-15 
03NOV2010:00:16:02 --> 15-30 

回答

1

的一种方法是将转换日期为一个unix时间戳。 unix时间戳是1970年1月1日以来的秒数。然后,您可以采用15 * 60的模数来给出最后15分钟标记后的秒数。

例如,使用当前时间now()

select now() - interval unix_timestamp(now())%(15*60) second 

这将打印20:00对我来说(这是这里日20:08)

1

听起来像是你想要的格式适用于分钟部分日期时间值。

使用SAS,你可以尝试这样的:

proc format; 
    value min15int 
    00-15 = "00-15" 
    15<-30= "16-30" 
    30<-45= "31-45" 
    45<-60= "46-60"; 
run; 

data test; 
    a='03NOV2010:00:00:02'dt;output; 
    a='03NOV2010:00:16:02'dt;output; 
run; 

data test2; 
    set test; 
    b=minute(a); 
    c=b; 
    format c min15int.; 
run; 

这只是快速和肮脏的,你可以把它适应您的要求。原则是我们只是创建一个显示格式来显示一个适用于它的特定格式的值。我已经分别创建了变量'b',它只是日期时间的分钟部分,然后在变量'c'中我正在应用格式。

hth。

相关问题