【发布时间】:2017-06-21 06:09:34
【问题描述】:
我正在尝试为每年的续订季节提取大于或等于 10 月 1 日(可变年份)的发票。我每年都可以硬编码,但我不想这样做,因为 SQL 代码嵌入在 CMS (netFORUM Enterprise) 的子窗体中,并通过另一个应用程序运行,而且部件太多,无法跟上。
因此,从 2016 年开始的硬代码如下所示:
WHERE my_date_field >= '10/01/2016'
注意,从 2016 年 10 月开始,以及 2017 年 10 月之前的整个 2017 年的几个月,我将使用此代码运行几次查询。请注意,他们的帐户中可能仍存在一些旧发票从两年前(2015 年 10 月 1 日)开始,我不想出现在我的结果中。
我琢磨过几种方法,都不太明白。
提前致谢!
【问题讨论】:
-
你用的是什么数据库?
-
编辑:我进行了一些编辑以帮助更好地理解这一点。很抱歉有任何混淆。
-
@SPlatten - SQL Server 2012
-
DateFromParts()是答案的一半。如果您可以根据Year( GetDate() )计算出合适的年份,那么 Bob 就是您的叔叔。 -
只需使用 where 过滤器(如 Gordon Bell 的回答)来检查大于这样的日期或两个日期之间的日期。
标签: tsql date sql-server-2012 content-management-system where