如何在两个日期之间插入时间

时间:2010-02-07 09:23:45

标签: .net sql-server vb.net

使用VB.Net和SQL 2005

表1

Name   FromDate ToDate

Sched1 20091201 20091231
Sched2 20090515 20090613
...,

在table2中,我想为FromDate和ToDate之间的日期添加时间

表2

Name   Date     StartTime EndTime

Sched1 20091201  080000    120000
...,

在我的应用程序中使用“AddTime”按钮。在click事件中,我想编写一个代码来添加日期的时间。

单击ADDTime按钮时。它应该检查table2中的max(date)。然后它应该显示table2中max(date)的下一个日期。

例如

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

它应该显示下一个日期意味着20091202.因为20091201数据在那里。

表2中没有Sched2的数据,所以它应该从table1显示StartDate 20090515。

如何为此条件制作代码或查询?

任何人都可以根据上述条件给我一个想法或样品。

1 个答案:

答案 0 :(得分: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'

查询正在连接Name上的两个表,之后它检查表2中是否存在'Sched1'的日期,如果是,它将返回最大日期+1天,如果不是,它将返回将TableD的FromDate返回给'Sched1'。

我建议你进一步阅读联接,你将无法正确但只有没有连接的普通查询,进一步考虑使用整数作为你的密钥。