2012-01-13 55 views
-1

學習sql並提出下一個問題。如何實現查詢以顯示兩個字段中相同或包含在以下範圍內的記錄:數據時間和數據時間結束。在同一日期的表格中搜索記錄或進入此日期範圍。 sql查詢

有一個表:

broadcasting 
rows: id, data-time, data-time-end, nameprogramm, namechannel 

一些數據:

'1 ', '2012-01-09 13:00:00', '2012-01-09 13:30:00 ','News', 'Channel1' 
'2 ', '2012-01-09 13:00:00', '2012-01-09 13:30:00 ','News', 'Channel2' 
'3 ', '2012-01-09 13:05:00', '2012-01-09 13:35:00 ','News', 'Channel3' 
'4 ', '2012-01-09 13:10:00', '2012-01-09 13:15:00 ','News', 'Channel4' 
'5 ', '2012-01-09 11:00:00', '2012-01-09 12:00:00 ','News', 'Channel5' 
'6 ', '2012-01-09 16:00:00', '2012-01-09 18:00:00 ','News', 'Channel6' 

需要查詢帶來了:

date-time date-time-end channel 

對於那些在與日期範圍內記錄時間和日期 - 時間結束。

我認爲你需要選擇最大和最小時間。然後看看其他記錄是否在這個範圍內。但事實證明,我會執行它。謝謝!

---------------------添加

讓我通過電視節目的例子來解釋。 我們有渠道和傳播。 什麼時候不同頻道的新聞一次傳輸?多少個新聞頻道同時播出? (開始時間消息不一定相同)。

結果: 我想要的結果如下:

data-time    data-time-end   namechannel 
2012-01-09 13:00:00 | 2012-01-09 13:30:00 | Channel1 
2012-01-09 13:05:00 | 2012-01-09 13:35:00 | Channel3 
2012-01-09 13:10:00 | 2012-01-09 13:15:00 | Channel4 
+0

這聽起來像一個非常基本的問題。使用SQL教程或書籍會更好。 – micke 2012-01-13 16:38:16

+1

你應該嘗試編輯你的文章。你的英文很難理解你需要什麼幫助。 – 2012-01-13 16:39:51

+0

我的英語原因。我需要推導出所有能夠達到數據時間,數據時間結束的記錄。在一個時間的地點發布什麼記錄? – Feor 2012-01-13 16:54:13

回答

1

來選擇記錄其中的日期範圍的整個是指定的開始和結束日期之間,嘗試:

select * from broadcasting 
where `date-time` >= ? /* start of date range */ 
    and `date-time-end` <= ? /* end of date range */ 

要選擇日期範圍內的任何部分在指定的開始日期和結束日期之間的記錄,請嘗試:

select * from broadcasting 
where `date-time` <= ? /* end of date range */ 
    and `date-time-end` >= ? /* start of date range */ 

編輯:以選擇自己的日期範圍的任何部分重疊任何其他記錄的日期範圍相同程序的任何部分記錄,請嘗試:

select * from broadcasting b1 
where exists (select null 
       from broadcasting b2 
       where b1.nameprogramm = b2.nameprogramm and 
        b1.`date-time` <= b2.`date-time-end` and 
        b2.`date-time` <= b1.`date-time-end` and 
        b1.id <> b2.id) 
+0

這幾乎是必要的!但是如何檢查記錄是否進入了給定的範圍?時間記錄 '2012-01-09 11:00:00 AM','2012-01-09 0:00:00 PM' '2012-01-09 11:10:00 AM','2012-01 -09 0:00:00 PM' '2012-01-09 11:20:00 AM','2012-01-09 0:00:00 PM' 全部都應該推斷出來。謝謝! – Feor 2012-01-13 16:51:28

+0

@Feor:恐怕我不明白你在問什麼。也許你可以編輯你的文章,並舉例說明你希望看到什麼(輸入數據和預期結果)? – 2012-01-13 16:54:28

+0

舉例。 – Feor 2012-01-13 16:59:43