在 SPSS 中将字符串 YYYY-MM-DD 转换为 MM/DD/YYYY 日期?

问题描述 投票:0回答:1

我想将一列 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.

我遇到的错误与变量列表为空或变量已定义有关。我将不胜感激任何方法来做到这一点!

spss
1个回答
0
投票

您的语法存在一些问题:

  1. 你原来的

    date
    变量应该已经存在,你不需要在这里定义它。

  2. 当您定义第二个变量时,您在末尾添加“MM/DD/YYYY” - 这就是给您提供错误消息的原因。如果这是对自己的评论,您可以使用:

    STRING conversion_date (A10) /* "MM/DD/YYYY"。

  3. 命令

    DATE.MDY
    创建一个 numeric 变量,因此您不能像您那样使用它来计算 string 变量,并且

  4. 如果您想创建一个 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).

请注意,字符串变量只是一个字符串...如果您想计算日期,您需要使用上面的第二个选项 - 它必须是数字变量。

© www.soinside.com 2019 - 2024. All rights reserved.