2014-03-18 22 views
0

我試圖找出一個SQL查詢,這將允許我排序數據升序,這取決於什麼時間在約會時間列中排序,它具有價值,如「00:00」 - 「23:00」按時間排序存儲在數據庫「00:00 - 23:00」

在我的頭上,它看起來是這樣的:

SELECT * FROM myTable ORDER BY appointment_time ASC 

但我不知道如何使它認識到00:00是例如比00:01更低的值等等。

+1

您使用的數據庫是? 'appointment_time'字段的數據類型是什麼?猜測這是一個字符串。 –

+0

@GoatCO Sqlite,它確實是一個字符串 – Ilja

回答

1

他們將整理細如編寫查詢,最簡單的辦法是隻試一試,看看會發生什麼:

SELECT * 
FROM myTable 
ORDER BY appointment_time ASC 

演示:SQL Fiddle

字母排序與數字存儲沒有問題在字符串中,只要它們是零填充的,就像你的時代一樣。

+0

我會試試看,我認爲這個數字之間的「:」符號會把它搞砸。 – Ilja

+0

@Ilja只要格式一致就沒有問題。 –

1

但我不知道如何使它認識到00:00比00:01

較低的值如果你已經是一個時間,然後在字母排序應該只是罰款。如果您想轉換爲DateTime可以使用convert:

select CONVERT(DATETIME, appointment_time , 108) 
1

如果存儲FROM_TIME和TO_TIME爲DATETIME(在兩個單獨的列),排序會被正確地做DB。

它也將考慮到的日期部分爲好,即排序2014年1月1日23:00前2013年12月31日23:30。如果您確實對日期不感興趣,請爲所有條目使用虛擬日期,並只使用列的時間部分。

+0

我想你已經混淆了這個問題,我不相信OP表示在這裏一列中有多個時間值。 –

+0

然後只使用一個列。列的正確輸入仍然可以解決問題。 – Ryan

相關問題