2010-02-07 74 views
0

使用VB.Net和SQL 2005如何插入兩個日期

表1

Name FromDate ToDate 

Sched1 20091201 20091231 
Sched2 20090515 20090613 
..., 

表2中我想添加一個時間沒有fromdate和todate

之間的日期之間的時間

表2

Name Date  StartTime EndTime 

Sched1 20091201 080000 120000 
..., 

在我的應用程序中使用「AddTime」按鈕。在點擊事件中,我想寫一個代碼來爲日期添加時間。

當我點擊ADDTime按鈕。它應該檢查表2中的最大值(日期)。然後它應該在table2中顯示max(date)的下一個日期。

對於實施例

Select max(date) from table where name = 'Sched1'. 

它應該顯示下一個日期單元20091202.因爲20091201數據是存在的。

對於Sched2,table2中沒有數據,所以它應該顯示Table1中的StartDate 20090515。

如何爲這種情況編碼或查詢?

任何人都可以給我一個想法或樣品的上述條件。

+1

老實說:我不明白你想要做什麼......你能澄清一下嗎? .... – 2010-02-07 09:36:35

+0

我想爲EveryDate添加時間。假設對於02-01-2010日期的時間已經輸入,它應該顯示下一個日期。否則它應該顯示開始日期。 – Gopal 2010-02-07 09:57:05

+0

你上次問這個怎麼回事? http://stackoverflow.com/questions/1665544/how-to-generate-a-date-for-the-given-time – 2010-02-07 17:20:13

回答

2

我相信下面的查詢將完成手頭的任務。

Select isnull(max(t2.date)+1,t1.FromDate) 
from table1 t1 inner join table2 t2 
on t1.[Name] = t2.[Name] 
where t1.[name] = 'Sched1' 

查詢是名稱上加入兩個表,並正在檢查之後,有沒有存在於表2的「Sched1的」任何日期,如果是的話,它將返回最大日期1天,和如果不是,它將返回'Sched1'的Table1的FromDate。

我建議你進一步閱讀連接,你將無法正確,但只有沒有連接的簡單查詢,進一步考慮使用整數爲你的密鑰。