Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Coverting variable to date and time


From   Nick Cox <njcoxstata@gmail.com>
To   "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu>
Subject   Re: st: Coverting variable to date and time
Date   Fri, 24 May 2013 12:43:35 +0100

Sure. Just keep reading the documentation. For example

. di clock("09:38:00.000", "hms")
34680000

. di %tc clock("09:38:00.000", "hms")
01jan1960 09:38:00

. di %tc_hh:mm clock("09:38:00.000", "hms")
  9:38

The day of 1 Jan 1960 can just be ignored.
Nick
njcoxstata@gmail.com


On 24 May 2013 12:34, Neophytos Stylianou
<neophytos.stylianou@postgrad.manchester.ac.uk> wrote:
> Thanks,
>
> I found out that the data source uses the atomic clock time measurement therefore %tc would be fine.
>
> Thanks Nick for the ampm command.
>
> If I only have time as string variable is there a way of changing it to numeric?
>
> For date you follow this command:
> gen datevar=date(mydatevar, "YMD")
> format date %d
>
> but for time only?
> Variable string 08:54:22
>
> Neo
>
> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Nick Cox
> Sent: 24 May 2013 12:02
> To: statalist@hsphsun2.harvard.edu
> Subject: Re: st: Coverting variable to date and time
>
> The difference between %tc and %tC is documented. If it's not clear to you, then perhaps Google "leap seconds" or go beyond the help and look at the manual.
>
> Your second -replace- won't work even in principle, and neither will work in practice.
>
> gen ampm = cond(hh(datetime) < 12, "am", "pm")
>
> might be one way of doing what I think you want.
>
> Nick
> njcoxstata@gmail.com
>
>
> On 24 May 2013 11:45, Neophytos Stylianou <neophytos.stylianou@postgrad.manchester.ac.uk> wrote:
>> Nick I have some more questions about time and date.
>>
>> I have read through the help file but it is not clear to me what is
>> the difference of %tc and %tC
>>
>> I have converted my data to YMDhms and it works
>>
>> Just for my practise I have also split the variable and converted the
>> two splits into date and time variable form strings
>>
>> I have entries for the same date but for morning as well as afternoon.
>>
>> How will I separate them in AM and PM?
>>
>> Is it something like:
>> Gen time2= AM if time1 >=00:00:00 & time1<=12:00:00 Replace time2=PM
>> if time1>12:00:00 &time1<00:00:00
>>
>> Thnaks
>> Neo
>>
>> -----Original Message-----
>> From: owner-statalist@hsphsun2.harvard.edu
>> [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Nick Cox
>> Sent: 24 May 2013 11:00
>> To: statalist@hsphsun2.harvard.edu
>> Subject: Re: st: Coverting variable to date and time
>>
>> That is no problem: it is in many ways the easiest and best way to import dates and/or  times into Stata.
>>
>> From your example, the -split- command is sufficient to split your variable into date and time strings: its default is to parse on spaces. See -help split-.  However, that is a red herring here.
>>
>> Stata has a rich variety of date and time functions making anything that you want. See -help dates- for a full introduction. What is below shows how to start. The help I have referenced shows how to go further.
>>
>> . set obs 1
>> obs was 0, now 1
>>
>> . gen double datetime = clock("2005-02-19 09:38:00.000", "YMD hms")
>>
>> . format datetime %tc
>>
>> . l
>>
>>      +--------------------+
>>      |           datetime |
>>      |--------------------|
>>   1. | 19feb2005 09:38:00 |
>>      +--------------------+
>>
>> Nick
>> njcoxstata@gmail.com
>>
>>
>> On 24 May 2013 10:35, Neophytos Stylianou <neophytos.stylianou@postgrad.manchester.ac.uk> wrote:
>>> Hello,
>>>
>>> I am using Stata 12.1 and I have a variable containing date and time.
>>>
>>> The problem is that it is a string variable and it contains both date and time within it.
>>>
>>> I want to split them into date variable and time variable but also have the opportunity to have a date time combined variable.
>>>
>>> Example of what the variable contains :
>>>
>>> 2005-02-19 09:38:00.000
>>> 2005-02-19 09:46:00.000
>>>
>>> I want a variable of date i.e 19/02/2005 and time 09:38:00
>>>
>>> I would do it manually if it was a small number of records but there
>>> are more than 1.3million rows
>>>
>>> I know that I can combine the date and time variables which will be
>>> created using gen double datetime = date*24*60*60*1000 + time format
>>> datetime %tcNN/DD/CCYY_HH:MM:SS
>>>
>> *
>> *   For searches and help try:
>> *   http://www.stata.com/help.cgi?search
>> *   http://www.stata.com/support/faqs/resources/statalist-faq/
>> *   http://www.ats.ucla.edu/stat/stata/
>>
>> *
>> *   For searches and help try:
>> *   http://www.stata.com/help.cgi?search
>> *   http://www.stata.com/support/faqs/resources/statalist-faq/
>> *   http://www.ats.ucla.edu/stat/stata/
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/faqs/resources/statalist-faq/
> *   http://www.ats.ucla.edu/stat/stata/
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/faqs/resources/statalist-faq/
> *   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index