在SQl查询中,如何检索从今天到前一年的4月1日之间输入的行?

在SQl查询中,如何检索从今天到前一年的4月1日之间输入的行?,sql,Sql,大家好 我正在编写一个T-SQL查询,它允许我检索上一年4月1日以来发生的事务。 例如,如果我今天运行查询,它将返回自2010年4月1日以来的所有事务。如果我在2012年5月运行查询,它将返回自2011年4月1日以来的所有交易 该表有一个“日期”格式列 我试过: SELECT * FROM table WHERE [Date] BETWEEN (year(getdate()-1) AND getdate() 但它从去年1月1日开始获取交易。我也不知道如何定义这个月,我在许多论坛上的研究也没有帮

大家好

我正在编写一个T-SQL查询,它允许我检索上一年4月1日以来发生的事务。 例如,如果我今天运行查询,它将返回自2010年4月1日以来的所有事务。如果我在2012年5月运行查询,它将返回自2011年4月1日以来的所有交易

该表有一个“日期”格式列

我试过:

SELECT *
FROM table
WHERE [Date] BETWEEN (year(getdate()-1) AND getdate()
但它从去年1月1日开始获取交易。我也不知道如何定义这个月,我在许多论坛上的研究也没有帮助

任何暗示都是非常受欢迎的

致以最良好的祝愿, El Presidente

使用
dateadd()
函数,您会很高兴的

SELECT * FROM table WHERE [Date] BETWEEN dateadd(year,-1,getdate()) AND getdate()
或者四月一日(问题的确切解读,但不是问题的含义)


为什么不将日期转换为秒,然后直接进行数字比较呢?
从UNIX_TIMESTAMP(date)>等的表中选择*等。

为什么有人要这样做?使用真实的SQL日期而不是不可读的unix时间戳更容易、更清晰。
SELECT * FROM table WHERE [Date] BETWEEN  cast((year(getdate())-1) as varchar(5))+'-04-01' AND getdate()