将包含日期的字符串变量转换为SPSS中的日期变量

Converting string variable that contains date into a date variable in SPSS

我的目标是将包含日期的字符串变量“生日”转换为日期变量。 当我 运行 我的语法我得到这个“要通过数字函数转换的字符串是零长度”。 我认为缺失值有问题。

我的数据集如下所示:

 birthday
 2004-07-01 00:00:00
 2005-09-01 00:00:00
 2006-03-01 00:00:00
 2007-07-01 00:00:00

我写的语法:

RECODE birthday (MISSING='99').
EXECUTE.

COMPUTE geboortedatum=number(birthday, YMDHMS19).
VARIABLE LABELS birthday ''.
VARIABLE LEVEL  birthday (SCALE).
FORMATS birthday (MOYR8).
VARIABLE WIDTH  birthday(8).
EXECUTE.

您收到的消息是指 birthday 为空的情况。
请注意,由于这是一个字符串变量而不是数字,尽管那里缺少日期,但除非您这样定义,否则 spss 不会将其识别为缺失数据。所以你的重新编码命令 RECODE birthday (MISSING='99'). 不会有任何效果,你应该把它改成:

RECODE birthday (''='99').

现在无论哪种方式,空或 '99',日期函数将无法处理该值,因此您将收到有关它的消息(并且新列中的值将丢失)。
如果你想避免收到消息,而不是 recode 命令,你可以这样做:

if birthday<>"" geboortedatum=number(birthday, YMDHMS19).