我正在尝试合并来自不同变量的日期和时间:
* Example generated by -dataex-. To install: ssc install dataex
clear
input float(datetime date)
1.66587e+12 19650
end
format %tc datetime
format %td date
我的代码如下:
g hh=hh(datetime)
g mm=mm(datetime)
g ss=ss(datetime)
g dt=dhms(date, hh, mm, ss)
format %tc dt
但是,我得到的是19oct2013 21:37:55
而不是19oct2013 21:38:58
。
这是Stata错误吗?
答案 0 :(得分:3)
这实际上是由于不精确引起的,而不是错误。
您需要生成类型为double的日期时间变量dt
:
clear
input float(datetime date)
1.66587e+12 19650
end
generate hh = hh(datetime)
generate mm = mm(datetime)
generate ss = ss(datetime)
generate dt1 = dhms(date, hh, mm, ss)
generate double dt2 = dhms(date, hh, mm, ss)
format %tc dt1 dt2
list datetime date hh mm ss
+---------------------------------------------------+
| datetime date hh mm ss |
|---------------------------------------------------|
1. | 14oct2012 21:38:58 19oct2013 21 38 58.688 |
+---------------------------------------------------+
list dt1 dt2
+-----------------------------------------+
| dt1 dt2 |
|-----------------------------------------|
1. | 19oct2013 21:37:55 19oct2013 21:38:58 |
+-----------------------------------------+