具有长日期时间的SQL查询?

时间:2011-08-05 11:44:55

标签: c# sql datetime

我正在尝试通过c#传递SQL查询,目前它仅基于日期和年份,时间总是设置为0 EG 1997-10-28 00.00.00.000这很好,因为时间永远不会改变它对于我来说,只选择日期等于日历日期。

然而,对于开始字段,每个记录的时间不同,例如1899-12-30 14.14:00.00.000,1899-12-30 15.14:30.00.000。 (向下的秒数总是相同的)。

所以我需要一个查询,它将返回“开始”字段中所选日期的所有结果。我该怎么做?

E.G如果我点击通过1997-10-28 00.00.00.000的日历,我想在那一天的每次结果!我该怎么做?

感谢您的任何意见。

编辑:有没有办法格式化我在SQL中的日期?这来自一个旧的访问数据库!正如你在上面看到的那样它是1899-12-30?不是1998年,我不知道为什么会发生这种情况!

4 个答案:

答案 0 :(得分:3)

您需要在今天和明天之间选择所有记录,而不包括明天的日期。

WHERE EventDate >= StartDate AND EventDate < DATEADD(d, 1, StartDate)

答案 1 :(得分:3)

WHERE DATEDIFF(dd, your_start_field, @your_param) = 0

答案 2 :(得分:0)

你能不能只查询日期部分。我认为这应该有用......

SELECT * FROM Table1 WHERE StartDate = '1997-10-28'

编辑:以上可能无法正常工作,但以下内容应涵盖需求

SELECT * FROM Table1 WHERE StartDate >= '1997-10-28 00:00:00.000' AND StartDate < '1997-10-29 00:00:00.000'

(注意第二个日期是以下日期)

答案 3 :(得分:0)

此SQL DATEADD(d,datediff(d,0,startdate),startdate)会将日期与时间转换为日期;

例如

Select field1,field2 from mytable where DATEADD(d,datediff(d,0,startdate),startdate)='1997-10-28'