LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous (more recent) messageNext (less recent) messagePrevious (more recent) in topicNext (less recent) in topicPrevious (more recent) by same authorNext (less recent) by same authorPrevious page (July 2006)Back to main SPSSX-L pageJoin or leave SPSSX-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
=========================================================================
Date:         Wed, 12 Jul 2006 14:03:47 -0500
Reply-To:     "Oliver, Richard" <roliver@SPSS.COM>
Sender:       "SPSSX(r) Discussion" <SPSSX-L@LISTSERV.UGA.EDU>
From:         "Oliver, Richard" <roliver@SPSS.COM>
Subject:      Re: Transforming date variables
Comments: To: Siraj Ur-rehman <Siraj.Ur-rehman@Ipsos-ASI.com>
Content-Type: text/plain; charset="US-ASCII"

I might use scratch variables for all those intermediate variables, and/or I might just parse the number using the TRUNC and MOD functions, as in:

compute #day=mod(datevar,100). compute #month=trunc(mod(datevar,10000)/100). compute #year=trunc(datevar/10000). compute newdate=date.mdy(#month, #day, #year). formats newdate (adate10).

You could, of course condense this down to one largish Compute statement: compute newdate=date.mdy(trunc(mod(datevar,10000)/100), mod(datevar,100),trunc(datevar/10000)).

Both this solution and the substring solution assume that all dates are in the form yyyymmdd with four-digit years, two-digit months, and two-digit days.

But...I think SPSS normally reads and correctly converts Excel dates to SPSS date-format variables, so theoretically none of this should be necessary.

-----Original Message----- From: SPSSX(r) Discussion [mailto:SPSSX-L@LISTSERV.UGA.EDU] On Behalf Of Siraj Ur-rehman Sent: Wednesday, July 12, 2006 12:04 PM To: SPSSX-L@LISTSERV.UGA.EDU Subject: Re: Transforming date variables

I think if the date variable is numeric then use this one

Compute Var_Year = number(substr(string(Date_var,f8.0),1,4),f4.0). Compute Var_Month = number(substr(string(Date_var,f8.0),5,2),f2.0). Compute Var_Day = number(substr(string(Date_var,f8.0),7,2),f2.0). exe. Compute New_Date = DATE.MDY(Var_Month,Var_Day,Var_Year).

FORMATS New_Date (ADATE10). EXECUTE.

-----Original Message----- From: SPSSX(r) Discussion [mailto:SPSSX-L@LISTSERV.UGA.EDU] On Behalf Of Edward Boadi Sent: Wednesday, July 12, 2006 10:59 AM To: SPSSX-L@LISTSERV.UGA.EDU Subject: Re: Transforming date variables

Try This:

Compute Var_Year = number(substr(Date_var,1,4)). Compute Var_Month = number(substr(Date_var,5,2)). Compute Var_Day = number(substr(Date_var,7,2)). Compute New_Date = DATE.MDY(Var_Month,Var_Day,Var_Year).

FORMATS New_Date (ADATE10). EXECUTE.

---Edward.

-----Original Message----- From: SPSSX(r) Discussion [mailto:SPSSX-L@LISTSERV.UGA.EDU]On Behalf Of [Ela Bonbevan] Sent: Wednesday, July 12, 2006 10:25 AM To: SPSSX-L@LISTSERV.UGA.EDU Subject: Transforming date variables

Hello all,

Another small question - I am working with spss 14 and using the date function. I have a variable imported from Excel that is a date but it is in a numeric format. I want to make it a recognized date variable in spss. For July 25, 2006 the value appears as 20060725. Using the date/time wizard it appears easiest to transform a variable that is a string. I want to do this in the syntax but I can't figure out how. This means that I have to go back to the data window and change it to a string manually. I am sure this is easy to do but I have been through the manual section on formats with no luck...

Many thanks Diane


Back to: Top of message | Previous page | Main SPSSX-L page