Size: 4098
Comment:
|
← Revision 9 as of 2025-03-05 02:31:33 ⇥
Size: 5664
Comment: Rewrite
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
Stata offers a small library of functions that should only be used on numeric variables with a [[Stata/DataFormats|date or datetime format]]. | Stata supports these '''datetime functions''' (i.e., numeric function designed for [[Stata/DataFormats#Date_and_Datetime_Formats|date and datetime formatted values]]) in the global scope. |
Line 9: | Line 9: |
== COfC == | |
Line 11: | Line 10: |
Convert a datetime around the handling of leap seconds. | |
Line 13: | Line 11: |
'''`Cofc`''' takes a datetime ''ignoring'' leap seconds since the Stata epoch (`01jan1960 00:00:00.000`) as input, and returns a datetime ''including'' them. | == Functions Converting Integers == |
Line 15: | Line 13: |
'''`cofC`''' does the reverse. {{{ generate double datetime2 = cofC(datetime) format datetime2 %tc generate double datetime3 = Cofc(datetime) format datetime3 %tC }}} |
See [[Stata/NumericFunctions#Date_and_Time_Functions|Numeric Functions]]. |
Line 29: | Line 19: |
== COfD == | == Functions Converting a String == |
Line 31: | Line 21: |
Convert a date into a datetime. | These functions convert a string into a numeric value that represents a date or time. '''Masks''' instruct how a date or time as represented in string data. A datetime format still must be separately applied to the numeric value. |
Line 33: | Line 23: |
There are two functions: '''`cofd`''' and '''`Cofd`'''. They return a numeric value that should be formatted as `%tc` or `%tC`, respectively. | As an example, the mask of `"DMY"` can parse all of: |
Line 35: | Line 25: |
{{{ generate double datetime = cofd(date) format datetime %tc |
* `"21nov2006"` * `"21 November 2006"` * `"21-11-2006"` * `"21112006"` |
Line 39: | Line 30: |
generate double datetime2 = Cofd(date) format datetime2 %tC }}} |
Spaces are ignored in a mask; `"DMY"` is equivalent to `"D M Y"`. The mask `"DMY"` cannot parse a string with a two-digit year. A two-digit prefix can be applied to "Y" in the mask, such as "DM19Y". If a string has a two-digit year, such a mask will cause the year to be interpreted as being within the 1900s. If a string has a four-digit year, the mask will not mutate the value. ||'''Function Name'''||'''Meaning''' ||'''Output Format'''||'''Example''' || ||`clock(s,m)` ||Parse a datetime||`%tc` ||`clock(s,"YMDhms")` || ||`Clock(s,m)` ||Parse a datetime||`%tC` ||`Clock(s,"YMDhms")` || ||`date(s,m)` ||Parse a date ||`%td` ||`date(s,"MDY")` || ||`halfyearly(s,m)` ||Parse a halfyear||`%th` ||`halfyearly(s,"YH")`|| ||`monthly(s,m)` ||Parse a month ||`%tm` ||`monthly(s,"YM")` || ||`quarterly(s,m)` ||Parse a quarter ||`%tq` ||`quarterly(s,"YQ")` || ||`weekly(s,m)` ||Parse a week ||`%tw` ||`weekly(s,"YW")` || ||`yearly(s,m)` ||Parse a year ||`%ty` ||`yearly(s,"Y")` || |
Line 47: | Line 48: |
== Day == | == Datetime Functions == |
Line 49: | Line 50: |
Extract the day of the month number (1 to 31) from a date (i.e. `%td`-formatted value). | These functions are intended for use on [[Stata/DataFormats#Date_and_Datetime_Formats|date and datetime formatted values]]. |
Line 51: | Line 52: |
{{{ generate byte day = day(date) }}} |
||'''Function Name'''||'''Meaning''' ||'''Output Format'''|| ||`cofC(x)` ||Converts a `%tC`-formatted datetime ||`%tc` || ||`cofd(x)` ||Converts a date ||`%tc` || ||`Cofc(x)` ||Converts a `%tc`-formatted datetime ||`%tC` || ||`Cofd(x)` ||Converts a date ||`%tC` || ||`day(x)` ||Extracts the days component from a date ||n/a, in [1,31] || ||`dofc(x)` ||Converts a `%tc`-formatted datetime ||`%td` || ||`dofC(x)` ||Converts a `%tC`-formatted datetime ||`%td` || ||`dofh(x)` ||Converts a number of halfyears since the epoch ||`%td` || ||`dofm(x)` ||Converts a number of months since the epoch ||`%td` || ||`dofq(x)` ||Converts a number of quarters since the epoch ||`%td` || ||`dofw(x)` ||Converts a number of weeks since the epoch ||`%td` || ||`dofy(x)` ||Converts a number of years since the epoch ||`%td` || ||`dow(x)` ||Extracts the day of week from a date ||n/a, in [0,6] || ||`doy(x)` ||Extracts the day of year from a date ||n/a, in [1,366] || ||`halfyear(x)` ||Extracts the halfyear from a date ||n/a, in [1,2] || ||`hofd(x)` ||Converts a date ||`%th` || ||`hh(x)` ||Extracts the hours component from a `%tc`-formatted datetime ||n/a || ||`hhC(x)` ||Extracts the hours component from a `%tC`-formatted datetime ||n/a || ||`mm(x)` ||Extracts the minutes component from a `%tc`-formatted datetime||n/a || ||`mmC(x)` ||Extracts the minutes component from a `%tC`-formatted datetime||n/a || ||`month(x)` ||Extracts the months component from a date ||n/a, in [1,12] || ||`quarter(x)` ||Extracts the quarter from a date ||n/a, in [1,4] || ||`ss(x)` ||Extracts the seconds component from a `%tc`-formatted datetime||n/a || ||`ssC(x)` ||Extracts the seconds component from a `%tC`-formatted datetime||n/a || ||`week(x)` ||Extracts the week from a date ||n/a, in [1,52] || ||`year(x)` ||Extracts the years component from a date ||n/a || ||`mofd(x)` ||Converts a date ||`%tm` || ||`qofd(x)` ||Converts a date ||`%tq` || ||`wofd(x)` ||Converts a date ||`%tw` || ||`yofd(x)` ||Converts a date ||`%ty` || |
Line 59: | Line 88: |
== DOfC == | == See also == |
Line 61: | Line 90: |
Convert a datetime into a date. There are two functions: '''`dofc`''' and '''`dofC`'''. They take a numeric value as input, formatted as `%tc` or `%tC` respectively. {{{ generate long date = dofc(datetime) #or generate long date = dofC(datetime) format date %td }}} ---- == DOfH == Convert a half-year (i.e. a `%th`-formatted value) into a date. {{{ generate long date = dofh(halfyear) format date %td }}} ---- == DOfM == Convert a month (i.e. a `%tm`-formatted value) into a date. {{{ generate long date = dofm(month) format date %td }}} ---- == DOfQ == Convert a quarter (i.e. a `%tq`-formatted value) into a date. {{{ generate long date = dofq(quarter) format date %td }}} ---- == DOfW == Convert a week (i.e. a `%tw`-formatted value) into a date. {{{ generate long date = dofw(week) format date %td }}} ---- == DOfY == Convert a year (i.e. a `%ty`-formatted value) into a date. {{{ generate long date = dofy(year) format date %td }}} ---- == Dow == Extract the day of the week number (0 to 6; Sunday is 0) from a date (i.e. `%td`-formatted value). {{{ generate byte day = dow(date) }}} ---- == Doy == Extract the day of the year number (1 to 366) from a date (i.e. `%td`-formatted value). {{{ generate byte day = doy(date) }}} ---- == HalfYear == Extract the half year number (1 to 2) from a date (i.e. `%td`-formatted value). {{{ generate byte halfyear = halfyear(date) }}} ---- == Hh == Extract the hours from a `%tc`-formatted datetime. {{{ generate byte hours =hh(datetime) }}} ---- == HhC == Extract the hours from a `%tC`-formatted datetime. {{{ generate byte hours =hhC(datetime) }}} ---- == Mm == Extract the minutes from a `%tc`-formatted datetime. {{{ generate byte minutes = mm(datetime) }}} ---- == MmC == Extract the minutes from a `%tC`-formatted datetime. {{{ generate byte minutes = mmC(datetime) }}} ---- == Month == Extract the month number (1 to 12) from a date (i.e. `%td`-formatted value). {{{ generate byte month = month(date) }}} ---- == Quarter == Extract the quarter number (1 to 4) from a date (i.e. `%td`-formatted value). {{{ generate byte quarter = quarter(date) }}} ---- == Ss == Extract the seconds from a `%tc`-formatted datetime. {{{ generate byte seconds = ss(datetime) }}} ---- == SsC == Extract the seconds from a `%tC`-formatted datetime. {{{ generate byte seconds = ssC(datetime) }}} ---- == Week == Extract the week number (1 to 52) from a date (i.e. `%td`-formatted value). {{{ generate byte week = week(date) }}} ---- == Year == Extract the year from a date (i.e. `%td`-formatted value). {{{ generate byte year = year(date) }}} |
[[https://www.stata.com/manuals/ddatetime.pdf|Stata datetimes]] |
Stata Datetime Functions
Stata supports these datetime functions (i.e., numeric function designed for date and datetime formatted values) in the global scope.
Contents
Functions Converting Integers
See Numeric Functions.
Functions Converting a String
These functions convert a string into a numeric value that represents a date or time. Masks instruct how a date or time as represented in string data. A datetime format still must be separately applied to the numeric value.
As an example, the mask of "DMY" can parse all of:
"21nov2006"
"21 November 2006"
"21-11-2006"
"21112006"
Spaces are ignored in a mask; "DMY" is equivalent to "D M Y".
The mask "DMY" cannot parse a string with a two-digit year. A two-digit prefix can be applied to "Y" in the mask, such as "DM19Y". If a string has a two-digit year, such a mask will cause the year to be interpreted as being within the 1900s. If a string has a four-digit year, the mask will not mutate the value.
Function Name |
Meaning |
Output Format |
Example |
clock(s,m) |
Parse a datetime |
%tc |
clock(s,"YMDhms") |
Clock(s,m) |
Parse a datetime |
%tC |
Clock(s,"YMDhms") |
date(s,m) |
Parse a date |
%td |
date(s,"MDY") |
halfyearly(s,m) |
Parse a halfyear |
%th |
halfyearly(s,"YH") |
monthly(s,m) |
Parse a month |
%tm |
monthly(s,"YM") |
quarterly(s,m) |
Parse a quarter |
%tq |
quarterly(s,"YQ") |
weekly(s,m) |
Parse a week |
%tw |
weekly(s,"YW") |
yearly(s,m) |
Parse a year |
%ty |
yearly(s,"Y") |
Datetime Functions
These functions are intended for use on date and datetime formatted values.
Function Name |
Meaning |
Output Format |
cofC(x) |
Converts a %tC-formatted datetime |
%tc |
cofd(x) |
Converts a date |
%tc |
Cofc(x) |
Converts a %tc-formatted datetime |
%tC |
Cofd(x) |
Converts a date |
%tC |
day(x) |
Extracts the days component from a date |
n/a, in [1,31] |
dofc(x) |
Converts a %tc-formatted datetime |
%td |
dofC(x) |
Converts a %tC-formatted datetime |
%td |
dofh(x) |
Converts a number of halfyears since the epoch |
%td |
dofm(x) |
Converts a number of months since the epoch |
%td |
dofq(x) |
Converts a number of quarters since the epoch |
%td |
dofw(x) |
Converts a number of weeks since the epoch |
%td |
dofy(x) |
Converts a number of years since the epoch |
%td |
dow(x) |
Extracts the day of week from a date |
n/a, in [0,6] |
doy(x) |
Extracts the day of year from a date |
n/a, in [1,366] |
halfyear(x) |
Extracts the halfyear from a date |
n/a, in [1,2] |
hofd(x) |
Converts a date |
%th |
hh(x) |
Extracts the hours component from a %tc-formatted datetime |
n/a |
hhC(x) |
Extracts the hours component from a %tC-formatted datetime |
n/a |
mm(x) |
Extracts the minutes component from a %tc-formatted datetime |
n/a |
mmC(x) |
Extracts the minutes component from a %tC-formatted datetime |
n/a |
month(x) |
Extracts the months component from a date |
n/a, in [1,12] |
quarter(x) |
Extracts the quarter from a date |
n/a, in [1,4] |
ss(x) |
Extracts the seconds component from a %tc-formatted datetime |
n/a |
ssC(x) |
Extracts the seconds component from a %tC-formatted datetime |
n/a |
week(x) |
Extracts the week from a date |
n/a, in [1,52] |
year(x) |
Extracts the years component from a date |
n/a |
mofd(x) |
Converts a date |
%tm |
qofd(x) |
Converts a date |
%tq |
wofd(x) |
Converts a date |
%tw |
yofd(x) |
Converts a date |
%ty |