Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: Coverting variable to date and time
From
Nick Cox <[email protected]>
To
"[email protected]" <[email protected]>
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
[email protected]
On 24 May 2013 12:34, Neophytos Stylianou
<[email protected]> 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: [email protected] [mailto:[email protected]] On Behalf Of Nick Cox
> Sent: 24 May 2013 12:02
> To: [email protected]
> 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
> [email protected]
>
>
> On 24 May 2013 11:45, Neophytos Stylianou <[email protected]> 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: [email protected]
>> [mailto:[email protected]] On Behalf Of Nick Cox
>> Sent: 24 May 2013 11:00
>> To: [email protected]
>> 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
>> [email protected]
>>
>>
>> On 24 May 2013 10:35, Neophytos Stylianou <[email protected]> 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/