2011-11-14 304 views
1

我可以按日期我使用Visual Studio 2010和C#这里 不能过滤是简化的说法我尝试没有成功过滤器在不工作

SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  (date_dt >= DateTime('"2011'/10/'19"')) 

SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  (date_dt >= "2011/10/19")) 

SQL语句日期有任何想法吗??

感谢

+1

您是否获得任何结果或错误消息? – Zeph

回答

0

我觉得你很接近看起来像你想要的东西,如:

SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  (date_dt >= DateTime(2011, 10, 19)) 

编辑: 首先想到这是一个linq问题,提交后它意识到这是一个sql问题。尝试:

SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  (date_dt >= convert(DateTime, '10/19/2011', 101) 
+0

非常感谢 –

0
SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  datediff(dd, date_dt, getdate()) <= @theMaxNumberOfDayDifference 

什么你要找的是SQL Server的DATEDIFF功能。它所做的是比较日期。我用一个变量来比较它,但如果你喜欢,你可以在那里有一个硬编码的值。它所做的是将您的date_dt字段与当前日期进行比较。如果天数(您可以将dd更改为我的链接中指定的任何其他比较范围)小于或等于今天的日期,那么它将返回这些记录。

编辑:这是假设date_dt字段是datetime或等效的数据类型。您也可以用getdate()替换任何有效的datetime规范,包括您希望与之比较的日期时间字符串。

0

你为什么不尝试:

SELECT date_dt, ident_1, ident_2, ident_3 
FROM  p240538 
WHERE  CONVERT(VARCHAR, date_dt, 112) >= 20111019 

当然,这将有助于我们更好,如果你能提供date_dt列的数据结构/类型/设置(因为我的建议可能会彻底改变应该date_dt 。?是一个指标,什么样的日期,你需要提供(如果它总是在yyyy/mm/dd格式)是日期也是一个参数

+0

date_dt是日期/时间 –

+0

@BayoAlen好的,然后检查我的答案。这应该是你要找的。 – 2011-11-14 19:37:09

-1

尝试......

 
SELECT date_dt, ident_1, ident_2, ident_3 
FROM p240538 
WHERE date_dt >= '10/19/2011' 
的代码是SQL和无关的Visual Studio或C#

+0

自己实际进行转换的主要原因是您知道常量的格式,如果您不告诉它,SQL Server可以轻松地获得月份和日期部分的混淆。在大多数情况下,你的答案会起作用,但不是全部。 –