sql语句中的按日期筛选不起作用
我无法按使用visual studio 2010和C的日期进行筛选 以下是我尝试过但没有成功的简化陈述sql语句中的按日期筛选不起作用,sql,visual-studio-2010,c#-4.0,date,Sql,Visual Studio 2010,C# 4.0,Date,我无法按使用visual studio 2010和C的日期进行筛选 以下是我尝试过但没有成功的简化陈述 SELECT date_dt, ident_1, ident_2, ident_3 FROM p240538 WHERE (date_dt >= DateTime('"2011' / 10 / '19"')) 或 有什么想法吗 谢谢 您需要的是SQL Server中的函数。它所做的是比较日期。我使用了一个变量来比较它,但是如果你愿意,你可以在那里有一个硬
SELECT date_dt, ident_1, ident_2, ident_3
FROM p240538
WHERE (date_dt >= DateTime('"2011' / 10 / '19"'))
或
有什么想法吗
谢谢
您需要的是SQL Server中的函数。它所做的是比较日期。我使用了一个变量来比较它,但是如果你愿意,你可以在那里有一个硬编码的值。它所做的是将日期字段与当前日期进行比较。如果您可以将dd更改为“我的链接”中指定的任何其他比较范围的天数小于或等于今天的日期,则它将返回这些记录
编辑:这是假设date_dt字段是datetime或等效的数据类型。您还可以用任何有效的日期时间规范替换getdate,包括要比较的日期时间字符串。为什么不试试:
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格式,您需要提供什么样的日期。日期也是一个参数吗?我想你已经接近了。看起来你想要的是:
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)
试试这个。。。
代码是SQL,与Visual Studio或C无关您是否得到零结果或错误消息?@BayoAlen ok,然后查看我的答案。这应该是您正在寻找的。您自己实际进行转换的主要原因是您知道常量的格式,如果不告诉SQL Server,它很容易混淆月份和日期部分。在大多数情况下,你的答案是有效的,但不是全部。
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 >= convert(DateTime, '10/19/2011', 101)
SELECT date_dt, ident_1, ident_2, ident_3
FROM p240538
WHERE date_dt >= '10/19/2011'