检查日期是否落在sql中当前年份的日期范围内

时间:2014-10-31 06:25:20

标签: sql sql-server

enter image description here

假设输入开始日期为“01/01/2014”,输入结束日期为“31/01/2014”。我需要检查输入开始日期和输入结束日期是否在突出显示的记录中。在突出显示的记录中,我有两列 monthfrom monthto 。这是从12月到2月。但在我的表中没有提到年份。我需要采取当年但如果我采取当年,那么我的查询失败

SELECT * FROM tablename WHERE dateformatted BETWEEN '01/12/2014' AND '28/02/2014'

如果我将结束日期定为明年,我的查询也会失败

SELECT * FROM tablename WHERE dateformatted BETWEEN '01/12/2014' AND '28/02/2015'.

假设我按照上面的查询格式化突出显示的详细信息,然后我可以检查输入日期是否在日期范围内。检查输入日期后,突出显示的记录我需要使用 weekfrom 和 weekto 列。如果我使用此查询 SELECT * FROM tablename WHERE dateformatted BETWEEN '01/12/2014' AND '28/02/2015'。 然后会得到错误的结果,因为周年将在今年和明年有所不同。

假设我使用这样的查询 SELECT * FROM tablename WHERE dateformatted BETWEEN '01/12/2014' AND '28/02/2014'。再次,我不会得到预期的结果,因为我正在检查当年的12月到2月。请帮助我,我需要检查两个条件

  1. 输入日期是否落在突出显示的记录中
  2. 计算在 weekfrom weekto 时考虑的突出显示记录的天数。
  3. 周和周也可能是相反的顺序也是星期六到星期日(7比1)。我们还需要计算工作天数。

1 个答案:

答案 0 :(得分:0)

而不是使用它:

SELECT * FROM tablename WHERE dateformatted BETWEEN '01/12/2014' AND '28/02/2014'

使用此:

SELECT * FROM tablename WHERE dateformatted BETWEEN #01/12/2014# AND #28/02/2014#