SAS Datetime和IF语句

时间:2015-05-22 19:21:44

标签: datetime sas

您好我正在尝试将日期01/02/2015设置为01/09/2015。我正在使用IF语句,但我认为由于该列具有mmddyy10和informat datetime20的格式,因此无效。

该列看起来像这样

01/09/2015
01/02/2015
05/23-2015

所以我希望它看起来像这样

01/09/2015
01/09/2015
05/23-2015

SAS中是否有允许我这样做的功能?或者我是否必须将列转换为Char并以此方式执行我的If语句。

1 个答案:

答案 0 :(得分:0)

只要它是一个日期值 - 所以未格式化的值大约是20000 - 你可以使用日期常量。

data want;
  set have;
  if datevar = '02JAN2015'd then datevar='09JAN2015'd;
run;

这与应用于列的格式无关。格式为不是变量类型;它类似于"当我看到这个变量时,请使用这种格式很好地打印它。"所有日期的基本价值相同:自1960年1月1日以来的某些天数。

日期常量始终使用DATE9.格式(DDMONYYYY)表示。

如果它实际上是日期时间,则格式不是MMDDYY10.,而是其他内容。然后使用日期时间常量:

if datetimevar = '02JAN2015:00:00:00'dt then ...

首先使用datepart将其转换为日期。

if datepart(datetimevar) = '02JAN2015'd then ...