2017-12-02 186 views
0

我正在尝试在Stata中将时间舍入到最近的15分钟时间间隔,因此例如2017年12月31日23:58将变为2018年1月1日00:00。我已存储(基于我的文档的理解)作为自1960年开始的毫秒数时间,所以我认为这将做到这一点:斯塔塔麻烦的四舍五入时间

根圆= ROUND(日期时间,60000 * 15)

但是,这并不奏效。例如2017年11月3日19时45分27秒变成11月3日2017年19时46分1秒,当我想我应该成为19时45分00秒。有没有人知道我在这里错过了什么?

+0

Stata'datetime'值需要存储为'double';你的生成命令应该开始'gen双轮' – 2017-12-02 23:29:24

回答

1

让我们来演示一个工作示例,说明我的评论,您需要将datetime值存储为double而不是float

. clear 

. set obs 1 
number of observations (_N) was 0, now 1 

. gen double datetime = clock("Nov 03, 2017 19:45:27","MDYhms") 

. gen round_f = round(datetime, 60000*15) 

. gen double round_d = round(datetime, 60000*15) 

. format datetime round_f round_d %tc 

. list, clean noobs 

       datetime    round_f    round_d 
    03nov2017 19:45:27 03nov2017 19:46:01 03nov2017 19:45:00 
+0

完美,谢谢!我以前没有注意过存储类型。我从来不会想到这一点 – aintgeorge