2012-01-16 78 views
1

我想查看输入到我的sql数据库中输入的最近24小时内的条目。我的数据库有一个日期和时间字段,这些字段在输入记录时设置。我目前使用下面的代码,但它不工作。代码正确执行,所以我怀疑我的SQL查询是不正确的。查看过去24小时内输入的SQL条目

DateTime Time = DateTime.Now; 
Time = Time.Subtract(new TimeSpan(24, 0, 0)); //Get DateTime of 24 Hours Ago 
SqlDataSource1.SelectCommand = "SELECT * FROM DataTable WHERE Date>'" + Time.ToShortDateString() + "' AND Time>'" + Time.ToShortTimeString() + "'"; 

我的表名称正确,字段名称正确。

感谢

+0

你收到一些具体的错误而执行查询?尝试打印要发送到数据库的sql语句,并尝试通过特定于数据库的客户端进行优化。它可以更容易地找到任何SQL语法错误 – 2012-01-16 14:16:46

+0

你可以随时做所有的数据库(假设mssql)'SELECT * FROM DataTable WHERE Date> = dateadd(day,-1,getdate())' – 2012-01-16 14:19:19

+0

@ab_dev86代码是他说,没有错误地执行。但他似乎有一个单独的日期和时间列。 – keni 2012-01-16 14:20:22

回答

2

您需要界定您的字段名称,因为它们是保留关键字:

SqlDataSource1.SelectCommand = 
"SELECT * FROM DataTable WHERE [Date]>'" + Time.ToShortDateString() + "' AND [Time]>'" + Time.ToShortTimeString() + "'" 

这是一个很好的理由要选择未在SQL保留字的字段名称。

如果这些都是一个字段,那么你可以做的日期和时间的单一评价:

WHERE <datetime field name> > GetDate() - 1

+0

非常感谢。忘记保留字。再次敲击SQL教科书的时间。 – 2012-01-16 14:36:11

2
SELECT * FROM DataTable WHERE [DATE] > getdate() - 1 
相关问题