我需要找到下一個(分五整除):00從獲得的UTC當前時間的結果,讓我解釋...圓了一個MySQL UTC_TIMESTAMP下一5分鐘塊
我使用
SELECT UTC_TIMESTAMP()
在MySql中的函數,它返回「2010-11-11 16:26:19」。
我然後要將該值轉換爲「16時30分00秒2010-11-11」,優選地使用MySQL只或MySQL和PHP的組合。
乾杯!
我需要找到下一個(分五整除):00從獲得的UTC當前時間的結果,讓我解釋...圓了一個MySQL UTC_TIMESTAMP下一5分鐘塊
我使用
SELECT UTC_TIMESTAMP()
在MySql中的函數,它返回「2010-11-11 16:26:19」。
我然後要將該值轉換爲「16時30分00秒2010-11-11」,優選地使用MySQL只或MySQL和PHP的組合。
乾杯!
MsSQL:
DATEADD(second, (60 - DATEPART(second, Last_Updated)) + ((5 - (DATEPART(minute, Last_Updated) % 5)) * 60) - 60, Last_Updated)
MySQL:
SELECT DATE_ADD(UTC_TIMESTAMP(), INTERVAL ((60 - SECOND(UTC_TIMESTAMP())) + ((5 - (MINUTE(UTC_TIMESTAMP()) % 5)) * 60) - 60) SECOND);
將「Last_Updated」替換爲要轉換的值,但會在5:00到達下一個5分鐘的時間間隔內找到任何內容。
2010-10-26 18:04:07.000 2010-10-26 18:05:00.000
2010-11-10 17:18:59.000 2010-11-10 17:20:00.000
2010-11-10 20:59:27.000 2010-11-10 21:00:00.000
2010-11-10 20:59:46.000 2010-11-10 21:00:00.000
2010-11-11 12:00:51.000 2010-11-11 12:05:00.000
2010-11-11 12:30:59.000 2010-11-11 12:35:00.000
這些都是我在我的最後測試數據庫的結果。
編輯忘了包括MySQL版本,哎呀呀。一直以來,MsSQL版本一直讓人感到好奇。
編輯:我不是MySQL用戶...我會離開必需品,somone可能會做更多的事情。
SELECT UTC_TIMESTAMP() + 300 - UNIX_TIMESTAMP() % 300;
編輯:我只是改寫了上述在MySQL的工作:
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(UTC_TIMESTAMP())
+ 300 - (UNIX_TIMESTAMP(UTC_TIMESTAMP()) % 300));
我不認爲這也正是OP想要的東西,因爲它也圓了5分鐘的時候,時間是5分鐘完全整除。例如,14:45:00會四捨五入到14:50:00,這是錯誤的。但這是向正確方向邁出的一步。
我會結合使用UNIX_TIMESTAMP()和FROM_UNIXTIME()與ROUND()到那裏。
所以最近的5分鐘爲界將是:
select now(),from_unixtime(300 * round(unix_timestamp(now())/300));
+---------------------+-------------------------------------------------------+
| now() | from_unixtime(300 * round(unix_timestamp(now())/300)) |
+---------------------+-------------------------------------------------------+
| 2011-04-23 09:20:35 | 2011-04-23 09:20:00 |
+---------------------+-------------------------------------------------------+
使用Unix時間你在幾秒鐘內工作。最近10秒鐘,然後除以10,輪再乘以10
最近分鐘 - 用60 最接近的小時 - 使用3600
你的想法。
我有一個不同的問題,這有助於。謝謝! – 2011-11-10 17:41:02
這是不對的,操作系統想把圓整到最近的5分鐘標記,而不是簡單的圓 – superphonic 2015-10-23 14:47:08
將總數的一半要舍入(150)到unix_timestamp(now())。 這樣,它總是會「向上」 – twicejr 2016-10-27 13:50:07
呃,你爲什麼打破它錘子? – plundra 2010-11-11 16:56:21