我正在使用MySQL數據庫在Java應用程序中定義我的數據。我需要的一種數據是日期/時間段。我需要在日期時間存儲添加劑數量。使用TIMESTAMP(?)獲取Java和MySQL的日期時間
我在其他方面計劃使用Java LocalDateTime
和MySQL的TIMESTAMP
數據類型來存儲日期/時間。我打算使用Java Timestamp
函數轉換LocalDateTime
。
我可以在MySQL TIMESTAMP
中存儲句點嗎?它如何處理「1天,3小時和6分鐘」作爲TIMESTAMP
(沒有處於時代)?如果沒有,那麼使用我正在使用的Java方法會有什麼效果? TIA。
詳情編輯加入: 這是本地使用,在每個分配的一個時區。 PC上的Java應用程序將通過我的Java GUI捕獲和查看LocalDateTime
,其中所需的粒度不會比分鐘更細。然後,它們以TIMESTAMP
存儲在數據庫中。
對於一個班次週期中的每個班次,這些時間段將存儲在DB中的「班次模板」表中,作爲相對於模板的零點的開始和結束時間段。我將通過循環處理這些移位模板記錄,計算從給定的開始日期時間到提前幾個月的所有「Shift」記錄(以Java爲單位)。
使用示例: 此示例模板將爲8個工作日定義12個小時的班次,爲4個工作組,每個工作日爲4天,然後爲4天(模板表中有16條記錄) 。所有值都是調用者零點的增加量。每個預設模板記錄包括:
- 加載量爲移位數
- 時間 - 日期添加量用於換檔的開始
- 時間 - 日期添加量用於換檔
- 船員標識符的端對於移位
網格模板(記錄)
(時間段被示出爲DD:HH:MM)
移位01:00:00:00 - 0點12分:00,船員
移02:零點12分00秒 - 01:00:00,船員乙
移03:01:00:00 - 1點12分00秒,機組人員
...
移09 :四時00分00秒 - 4點12分00秒,船員ç
移位10:4點12分00秒 - 5時00分00秒,船員d
...(最多轉移16)
接下來是我想從上述模板記錄集中生成移位記錄,以06/01/2016 06:00爲例以開始日期時間(或零點)爲例,其中:
- 移位數
- 移位起始日期時間
- 移位結束日期時間 用於換檔
- 船員標識符
移位(記錄)
(日期 - 時間顯示爲MM/DD/YYYY hh:mm)
輪班01:06/01/2016 06:00 - 06/01/2016 18:00,船員A
輪班02:06/01/2016 18:00 - 06/02/2016 06:00,船員B
班次03:06/02/2016 06:00 - 06/02/2016 18:00,船員A
...
班次09:06/05/2016 06:00 - 06/05/2016 18:00,船員C
班次10:06/05/2016 18 :00 - 06/06/2016 06:00,船員D
...
班17:06/09/2016 06:00 - 06/09/2016 18:00,船員A
班次18:06/09/2016 18:00 - 06/10/2016 06:00,船員B
...
班次25:06/13/2016 06:00 - 06/13/2016 18:00,船員C
班次26: 06/13/2016 18:00 - 06/14/2016 06:00,船員D
...
整個編輯,從「偏移」來「月經」,與一些澄清
對我而言,將時間偏移量存儲爲整數似乎是最直觀的。該值將對應於分鐘數/秒/毫秒數(取決於您需要的粒度)。如果您需要以其他時間單位顯示偏移量,則轉換是簡單的算術運算。 –
@MickMnemonic Java代碼將定義粒度。你將如何獲得/把Java中的整數? –
在不瞭解應用程序的情況下很難回答,但通過['TimeUnit'],Java中的轉換很簡單(http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ TimeUnit.html)枚舉。 –