2017-12-02 188 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