2014-10-13 165 views
0

我有設施數據記錄如下。從mysql獲取最小小時數和最大小時數

Id_facility | time_start | time_end 
1   | 07:00:00 | 19:00:00 
2   | 08:00:00 | 20:00:00 

我想要得到的lowest time_start和一個查詢highest time_end, 例如:07:00:00 20:00:00

我嘗試:

SELECT time_start, MIN(TIME_TO_SEC(time_start)), time_end, MAX(TIME_TO_SEC(time_end)) AS mite FROM facility 

但結果只返回第一行。

我如何在一個查詢中獲得最低TIME_START和最高TIME_END?**

+0

你想要什麼輸出? 'SELECT MIN(time_start),MAX(time_end)FROM facility'會爲您帶來最低/最高時間的一行。 – jpw

+0

@jpw我只想得到time_start和time_end,在我的試用查詢中,我嘗試比較每個記錄。但它失敗了 – Muarif

+0

這是你想要的嗎? http://www.sqlfiddle.com/#!2/41cad/4 – jpw

回答

0

我猜這是你想要什麼:

SQL Fiddle

MySQL的32年5月5日架構設置

CREATE TABLE facility 
    (`Id_facility` int, `time_start` varchar(8), `time_end` varchar(8)) 
; 

INSERT INTO facility 
    (`Id_facility`, `time_start`, `time_end`) 
VALUES 
    (1, '07:00:00', '19:00:00'), 
    (2, '08:00:00', '20:00:00') 
; 

查詢1

SELECT MIN(time_start), MAX(time_end) FROM facility 

Results

| MIN(TIME_START) | MAX(TIME_END) | 
|------------------|----------------| 
|   07:00:00 |  20:00:00 | 
+0

請注意,這隻會在'time_start'和'time_end'列是'varchar'時才起作用。 –

+0

@isim是的,我知道,但它似乎可以用於OP。也許數據存儲爲varchar,或者可能是時間,我不知道。 – jpw

+0

我認爲他的'time_start'和'time_end'列中的值是錯誤的。 AFAIK,在MySQL中沒有時間類型。爲了防止OP在幾天內再次發送消息,並說「*它不工作*」 –

0

你試圖讓兩個結果?一個開始時間最短,另一個開始時間最長?

SELECT time_start, time_end 
FROM facility 
WHERE time_start = MIN(TIME_TO_SEC(time_start)) 
     OR time_end = MAX(TIME_TO_SEC(time_end)) 
FROM facility