2014-09-03 40 views
0

I as time in hh:mm aa format ex:01:30 AM。如何在sqlite中排序時間數據類型?

創建表時,我將數據類型指定爲TIME。但是沒有辦法設置它的格式。默認情況下,它是HH:MM:SS格式。所以當輸入AM/PM值時,它不會被添加到數據庫中。

是否有一種方法可以使用TIME數據類型列以我所需的格式存儲我的時間,以便可以更輕鬆地進行排序。

另外我試着將時間保存爲TEXT數據類型。我通過取消上午/下午的順序來排序並進行字符串排序。它的問題是12:30 PM將不正確的命令。

例如:30-下午12:30,上午12:30,下午2時30分將被責令爲上午12:30,下午2時30分,下午12.30

如何訂購此列,我可以給什麼數據類型呢?

+0

這就是爲什麼** 24小時格式更好**:'02:30 PM = 14:00',這是12:30之後。上午12:30真的是'00:30'。 – 2014-09-03 11:30:22

+1

它可能是一個竅門第一U保存數據的時間類型,但在保存01:30 AM之前只解析01:30並保存在時間類型和時間下午2:30意味着根據24 HRS時間它14:30會保存它,然後當U檢索SELECT * FROM數據ORDER BY to_Time(Time),並再次解析時,因爲你需要**它更好地使用24小時格式** – 2014-09-03 11:33:20

+0

請參閱此解決方案: - https://stackoverflow.com/a/45240886/4024250 – 2017-07-21 15:03:46

回答

0

使用hh:mm:ss來存儲數據庫中的值。 (這是正確排序所需的,並且全是built-in time functions。)

使用hh:mm aa格式(或任何其他格式)顯示值。 您不能預見哪種格式是用戶語言環境的默認格式,或者用戶是否選擇了其他時間格式,因此無論如何您必須準備格式化顯示時間。