【发布时间】:2012-03-20 23:40:19
【问题描述】:
我有一个 C# 小程序,它不断向我的一个表 (DataTable) 发送数据。数据格式和长度始终相同。
我在这里使用 4 个不同的 IDs:2000,2001,2002, ...它们都在不同的表中。 ID 列是我的DataTable 列中的外键。
最初我以为我可以在我的DataTable 中检索最后插入的行以获取特定的ID。但是,我意识到插入语句确实按照发送的顺序将值分配到数据库中。因此,我决定简单地取一个ID 并根据时间戳获取最后一行数据。
我尝试过使用DatePart,但这将我限制在几个小时内。我想显示基于小时和分钟的时间。例如:2002 between '4:30:00' and '5:30:00'。
另外,由于我会从另一个表中调用ID 列,我是否必须执行连接语句?
到目前为止我已经尝试过了:`
use LogDatabase
select * from dbo.DataTable
join CustomerTable
on(Customer_ID = CustIDFk)
where DATEPART(HH, TimeStamp)between 4 and 5 `
传入的数据字符串看起来很像这样:
3-13-2011 3:30:21 2002: 45 Temp:81 Albany NY etc....
我已经为我的 DataTable 中的每个数据字段创建了列。如你看到的 2002 是我的 CustomerTable 中称为 Customer_ID 的 ID。我设置了这个 作为我在 CustomerTable 和 CustIDFk 中的主键是要链接的外键 与 Customer_ID。如您所见,我正在尝试将我的客户表与我的数据连接起来 表以指定 ID。 DATEPART 语句允许给出时间范围 小时或分钟等,但不允许“在 4:30 和 5:30 之间。
【问题讨论】:
-
您需要展示一些示例数据以及到目前为止您编写的任何查询 - 即使它们不起作用。
-
我同意呸。目前,这对我来说没有多大意义。表定义和一些示例数据将回答我们为了解您的问题而必须提出的一大堆问题。
-
@Rick:请不要发布代码示例和类似的东西到 cmets - 真的很难阅读!请改为:更新您的原始问题以提供更多信息!
-
约会不能只做MAX吗?
-
@Simon,是的,我计划使用 Max on date 来接收最近插入的行。但是,我的应用程序是特定时间的。我需要特定时间范围内的最新一行或多行。例如:4:30 - 5:30 或 4:10-4:20(我可以控制最小值)
标签: sql sql-server