我試圖找出一個SQL查詢,這將允許我排序數據升序,這取決於什麼時間在約會時間列中排序,它具有價值,如「00:00」 - 「23:00」按時間排序存儲在數據庫「00:00 - 23:00」
在我的頭上,它看起來是這樣的:
SELECT * FROM myTable ORDER BY appointment_time ASC
但我不知道如何使它認識到00:00是例如比00:01更低的值等等。
我試圖找出一個SQL查詢,這將允許我排序數據升序,這取決於什麼時間在約會時間列中排序,它具有價值,如「00:00」 - 「23:00」按時間排序存儲在數據庫「00:00 - 23:00」
在我的頭上,它看起來是這樣的:
SELECT * FROM myTable ORDER BY appointment_time ASC
但我不知道如何使它認識到00:00是例如比00:01更低的值等等。
他們將整理細如編寫查詢,最簡單的辦法是隻試一試,看看會發生什麼:
SELECT *
FROM myTable
ORDER BY appointment_time ASC
演示:SQL Fiddle
字母排序與數字存儲沒有問題在字符串中,只要它們是零填充的,就像你的時代一樣。
我會試試看,我認爲這個數字之間的「:」符號會把它搞砸。 – Ilja
@Ilja只要格式一致就沒有問題。 –
但我不知道如何使它認識到00:00比00:01
較低的值如果你已經是一個時間,然後在字母排序應該只是罰款。如果您想向轉換爲DateTime可以使用convert:
select CONVERT(DATETIME, appointment_time , 108)
如果存儲FROM_TIME和TO_TIME爲DATETIME(在兩個單獨的列),排序會被正確地做DB。
它也將考慮到的日期部分爲好,即排序2014年1月1日23:00前2013年12月31日23:30。如果您確實對日期不感興趣,請爲所有條目使用虛擬日期,並只使用列的時間部分。
我想你已經混淆了這個問題,我不相信OP表示在這裏一列中有多個時間值。 –
然後只使用一個列。列的正確輸入仍然可以解決問題。 – Ryan
您使用的數據庫是? 'appointment_time'字段的數據類型是什麼?猜測這是一個字符串。 –
@GoatCO Sqlite,它確實是一個字符串 – Ilja