我正在嘗試在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秒。有沒有人知道我在這裏錯過了什麼?
我正在嘗試在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秒。有沒有人知道我在這裏錯過了什麼?
讓我們來演示一個工作示例,說明我的評論,您需要將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
完美,謝謝!我以前沒有注意過存儲類型。我從來不會想到這一點 – aintgeorge
Stata'datetime'值需要存儲爲'double';你的生成命令應該開始'gen雙輪' – 2017-12-02 23:29:24