将日期和时间合并到一个变量中

时间:2018-11-03 20:10:41

标签: stata

我正在尝试合并来自不同变量的日期和时间:

* 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错误吗?

1 个答案:

答案 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 |
     +-----------------------------------------+