我想将一列 YYYY-MM-DD 格式的字符串转换为 MM/DD/YYYY 的日期格式。
我想专门使用 spss 语法来执行此操作。当我尝试使用时:
STRING date (A10) "YYYY-MM-DD".
STRING converted_date (A10) "MM/DD/YYYY".
* Convert the entire "date" column to MM/DD/YYYY format.
COMPUTE converted_date = DATE.MDY(SUBSTR(date, 6, 2),
SUBSTR(date, 9, 2), SUBSTR(date, 1, 4)).
FORMAT converted_date (ADATE10).
EXECUTE.
我遇到的错误与变量列表为空或变量已定义有关。我将不胜感激任何方法来做到这一点!
您的语法存在一些问题:
你原来的
date
变量应该已经存在,你不需要在这里定义它。
当您定义第二个变量时,您在末尾添加“MM/DD/YYYY” - 这就是给您提供错误消息的原因。如果这是对自己的评论,您可以使用:
STRING conversion_date (A10) /* "MM/DD/YYYY"。
命令
DATE.MDY
创建一个 numeric 变量,因此您不能像您那样使用它来计算 string 变量,并且
如果您想创建一个 numeric 变量,则需要提供
DATE.MDY
numbers 而不是字符串。
所以这里有两种可能性:
* create a string variable which will contain the date in the new format.
string converted_date_string (a10).
COMPUTE converted_date_string = concat(
char.substr(date, 6, 2), "/",
char.substr(date, 9, 2), "/",
char.substr(date, 1, 4)).
* convert date into a numeric value with MM/DD/YYYY format.
COMPUTE converted_date_numeric = DATE.MDY(
number(char.substr(date, 6, 2),f2),
number(char.substr(date, 9, 2),f2),
number(char.substr(date, 1, 4),f4)
).
FORMAT converted_date_numeric (ADATE10).
请注意,字符串变量只是一个字符串...如果您想计算日期,您需要使用上面的第二个选项 - 它必须是数字变量。