我正面臨這個問題。當我從網站打包時,我總是會獲得0:00h或0:30h的例子。這在技術上是在當前日期的開始。但是對於人類來說,是在當前日期的末尾。午夜訂單後的24h時間
我需要0:00到6:00在一天結束時獲得排序,而不是直接從數據庫開始排序。
我正在使用java,hibernate標準,mysql datetime。 謝謝大家!
我正面臨這個問題。當我從網站打包時,我總是會獲得0:00h或0:30h的例子。這在技術上是在當前日期的開始。但是對於人類來說,是在當前日期的末尾。午夜訂單後的24h時間
我需要0:00到6:00在一天結束時獲得排序,而不是直接從數據庫開始排序。
我正在使用java,hibernate標準,mysql datetime。 謝謝大家!
您可以通過在整個應用程序中使用MySql DATETIME
數據類型來正確訂購您的日期和時間。 Java等價類是util.Date
。
根據計算機和電信行業標準,每個日曆日的第一毫秒具有00:00.000的時間。因此,如果您將秒數增加到23:59:51.000,您將在第二天獲得00:00:01.000。
聽起來像你的企業有一個不同的,非標準的規則來描述每一天的開始和結束,用於這個特定的顯示。沒關係。但是你需要非常精確地列舉這個規則。午夜在人類努力的許多領域都很重要!
假設你的規則是一天的信息從第二天的[01:00:00到01:00:00)運行。
然後你可以在這樣的MySQL查詢中選擇昨天的記錄。
WHERE `timestamp` >= CURDATE() - INTERVAL 1 DAY + INTERVAL 1 HOUR
AND `timestamp` < CURDATE() + INTERVAL 1 HOUR
...
ORDER BY `timestamp`
這將按正確的順序顯示你的東西。它不會顯示24:01的時間,但會在23:59後顯示00:01。
這似乎是一個簡單和良好的答案,我明天會嘗試,我會反饋。感謝Ollie! – surfealokesea
我沒有看到我可以將它與hibernate和我的複雜條件列表集成在一起的方式。我沒有找到一種方法在hibernate Order子句中集成sql。最後,我在數據庫中創建了一個varchar日期列,其值爲YYYYMMDDHHMM,其中我將小時數保存爲24而不是00,然後獲取按此列排序的列表 – surfealokesea
從一個「日」到下一個的截止點在哪裏?它是在「24:59」嗎? 「25:00」? –
你真的沒有提供足夠的上下文來獲得真正的答案。你想把這些時間按不同方式排序?在網頁上?在查詢結果集?時間是否存儲爲數據庫中的Date對象?作爲字符串?我們需要更好地描述需求。 –
我同意持續的決定。我的回答部分基於猜測,總是一件冒險的事情。請考慮編輯您的問題,以更詳細地解釋您要完成的任務。 –