【发布时间】:2015-08-24 16:01:21
【问题描述】:
我正在处理入院数据,其中入院日期和出院日期的信息以时钟格式 %tcCCYY-NN-DD_hh:MM_AM 存储,例如
discharge date
2009-04-21 9:00 AM
因此,自 1960 年 1 月 1 日以来,数据信息以毫秒为单位存储,将其转换为数字双精度变量给了我
discharge date
1556269200000
现在,我想将我的一些日期变量移动 1 分钟(只是一个示例),并生成一个新变量
gen new_discharge_date = discharge_date + 60*1000
这只会偶然将出院日期偏移一分钟
在上面的例子中,这会给我
new_discharge_date
2009-04-25 9:00 AM
或双倍
new_discharge_date
1556269236224
new_discharge_date 和discharge_date 的差别只有36224 毫秒,而不是60000。
问题是系统性发生的,有时自 1960 年 1 月 1 日以来的毫秒数甚至会比以前少。
知道我做错了什么吗?
【问题讨论】:
-
时间戳应该以长而不是双倍的形式存储。另外尝试使用一些括号: gen new_discharge_date = dispatch_date + (60*1000)
-
不是这样。
long在这里不够用。看我的回答。 (括号很好,但只是装饰性的。)