是否有 Stata 函数可以删除 DateTime 变量中的日期?
Is there a Stata function to delete the date in a DateTime variable?
我有一个名为 assign1_submission
的日期时间变量(键入 double
和 format %tchh:MM:SS_AM
)。我有另一个日期时间变量 time_due
(类型 double
和 format %tchh:MM:SS_AM
)。
gen double time_due = clock("12:00 PM", "hm")
format time_due %tchh:MM:SS_AM
在我从MS Excel导入的assign1_submission
中,变量只包含一个时间。但是,在数据浏览器中,Stata 为条目附加了日期。
尽管只告诉 Stata 一个时间,但我的 time_due
变量在条目中有一个日期。
我想做的是删除两个变量中的日期,因为我想查看time_due
和assign1_submission
之间的时差。
所以,我尝试了以下代码:
replace assign1_submission = hh(assign1_submission)
replace time_due = hh(time_due)
gen time_difference = time_due - assign1_submission
根据 Stata:
hh(e_tc)
Description: the hour corresponding to datetime e_tc (ms. since
01jan1960 00:00:00.000)
当运行这段代码:
replace assign1_submission = hh(assign1_submission)
Stata 忽略了之前的时间:所有内容都被覆盖为状态:12:00 AM,其中日期仍附在条目上。
有人可以帮忙删除 assign1_submission
和 time_due
变量中的日期,以便我可以确定这两个变量之间的小时差吗?
Stata 中的日期时间是从 1960 年开始计算的,以毫秒 (ms) 为单位。您可以通过除以 24 * 60 * 60000(即 1 天的毫秒数)的余数来丢弃日期元素。
所指时间仍默认为1960年1月1日
clear
set obs 1
gen double datetime = clock("4 July 2020 18:00:00", "DMY hms")
format datetime %tc
gen double time = mod(datetime, 24 * 60 * 60 * 1000)
format time %tcHH:MM:SS
l, noobs
+-------------------------------+
| datetime time |
|-------------------------------|
| 04jul2020 18:00:00 18:00:00 |
+-------------------------------+
否则很难遵循你的断言。 Stata 不会因为您在浏览器中查看而更改数据。您显示的每日日期与不同的变量有关。
我有一个名为 assign1_submission
的日期时间变量(键入 double
和 format %tchh:MM:SS_AM
)。我有另一个日期时间变量 time_due
(类型 double
和 format %tchh:MM:SS_AM
)。
gen double time_due = clock("12:00 PM", "hm")
format time_due %tchh:MM:SS_AM
在我从MS Excel导入的assign1_submission
中,变量只包含一个时间。但是,在数据浏览器中,Stata 为条目附加了日期。
尽管只告诉 Stata 一个时间,但我的 time_due
变量在条目中有一个日期。
我想做的是删除两个变量中的日期,因为我想查看time_due
和assign1_submission
之间的时差。
所以,我尝试了以下代码:
replace assign1_submission = hh(assign1_submission)
replace time_due = hh(time_due)
gen time_difference = time_due - assign1_submission
根据 Stata:
hh(e_tc) Description: the hour corresponding to datetime e_tc (ms. since 01jan1960 00:00:00.000)
当运行这段代码:
replace assign1_submission = hh(assign1_submission)
Stata 忽略了之前的时间:所有内容都被覆盖为状态:12:00 AM,其中日期仍附在条目上。
有人可以帮忙删除 assign1_submission
和 time_due
变量中的日期,以便我可以确定这两个变量之间的小时差吗?
Stata 中的日期时间是从 1960 年开始计算的,以毫秒 (ms) 为单位。您可以通过除以 24 * 60 * 60000(即 1 天的毫秒数)的余数来丢弃日期元素。
所指时间仍默认为1960年1月1日
clear
set obs 1
gen double datetime = clock("4 July 2020 18:00:00", "DMY hms")
format datetime %tc
gen double time = mod(datetime, 24 * 60 * 60 * 1000)
format time %tcHH:MM:SS
l, noobs
+-------------------------------+
| datetime time |
|-------------------------------|
| 04jul2020 18:00:00 18:00:00 |
+-------------------------------+
否则很难遵循你的断言。 Stata 不会因为您在浏览器中查看而更改数据。您显示的每日日期与不同的变量有关。