Sql 在WHERE子句中以now作为引用筛选DateTime字段
我正在尝试使用where子句构建一个vb.net应用程序,以使用DateTime字段过滤数据 我的表包含5个字段和10000多行。我想使用DateTime字段查找从现在起超过7年的所有行。 但是这个脚本将被多次重复使用。所以我不想使用这种where子句,因为我不想每次运行应用程序时都修改where子句:Sql 在WHERE子句中以now作为引用筛选DateTime字段,sql,vb.net,datetime,where-clause,Sql,Vb.net,Datetime,Where Clause,我正在尝试使用where子句构建一个vb.net应用程序,以使用DateTime字段过滤数据 我的表包含5个字段和10000多行。我想使用DateTime字段查找从现在起超过7年的所有行。 但是这个脚本将被多次重复使用。所以我不想使用这种where子句,因为我不想每次运行应用程序时都修改where子句: select * from myTable WHERE myDateTimeField < '2006-09-07 00:00:00.000' 从myDateTimeField
select * from myTable WHERE myDateTimeField < '2006-09-07 00:00:00.000'
从myDateTimeField<'2006-09-07 00:00:00.000'所在的myTable中选择*
我想找到一种写where子句的方法,如下所示:
从myTable中选择*其中myDateTimeField“从现在起超过7年”
“
我不经常使用VB.net(如您所见),所以这件事真的让我很困扰只要利用
日期时间
:
Dim dateTime As DateTime
dateTime = DateTime.Now.AddYears(-7);
构建SQL字符串时,只需在约会时调用ToString
(显然,您可以根据需要对其进行格式化):
我认为如果您有SQL Server,情况会更好
strQuery = "select * from myTable WHERE myDateTimeField
<= DATEADD(YEAR, -7, GETDATE())"
strQuery=“从myDateTimeField所在的myTable中选择*
你要找的是datetime的DSL。看看这篇博文,了解一些想法
祝你好运
附言
如果您需要帮助将其翻译成vb.net,只需提交一条评论。您是否建议将日期时间
作为字符串
传递?这从来都不是一个好主意。@MattJohnson-我同意,我总是将日期推到SQL Server的一边。因为他最初的问题显示了对字符串日期的尝试,这就是我所做的我知道他想做什么。
strQuery = "select * from myTable WHERE myDateTimeField
<= DATEADD(YEAR, -7, GETDATE())"
SELECT * FROM myTable WHERE myDateTimeField < DATEADD(YEAR, -7, GETDATE())
SELECT * FROM myTable WHERE myDateTimeField < DATEADD(YEAR, -7, GETUTCDATE())