您好我正在尝试将日期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语句。
答案 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 ...