【问题标题】:How to insert a time between the two dates如何在两个日期之间插入时间
【发布时间】:2010-02-07 09:23:45
【问题描述】:

使用 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”按钮。在点击事件中,我想编写一个代码来添加日期的时间。

当我单击 ADDTime 按钮时。它应该检查表 2 中的最大值(日期)。然后它应该在 table2 中显示 max(date) 的下一个日期。

举例

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

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

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

如何对这个条件进行编码或查询?

谁能给我关于上述情况的想法或样本。

【问题讨论】:

  • 老实说:我不明白你到底想做什么.....你能澄清一下吗? ....
  • 我想为 EveryDate 添加一个时间。假设 02-01-2010 日期的时间已经输入,它应该显示下一个日期。否则它应该显示开始日期。
  • 你上次问这个有什么问题吗? stackoverflow.com/questions/1665544/…
  • 天啊小马。试着理解这个问题,我在问什么。不要将问题与句子进行比较。

标签: .net sql-server vb.net


【解决方案1】:

我相信以下查询将完成手头的任务。

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 上的两个表,然后它检查 Table2 中是否存在“Sched1”的任何日期,如果有,它将返回最大日期 +1 天,如果没有,它将返回从 Table1 中为“Sched1”返回 FromDate。

我建议您进一步阅读有关联接的内容,您将无法编写,但只能编写没有联接的琐碎查询,进一步考虑使用整数作为键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多