SQL Server计算几个月的日期

时间:2013-09-11 08:43:46

标签: .net sql-server datetime range

我正在将我的工作班次记录到Microsoft SQL Server中,我想计算下一个薪水可以达到的程度。如果我的工资是从1日到31日,那就没问题了。问题是我的工资单从20日到19日,并在下个月支付。

我成功使用了这个T-SQL查询:

SELECT * 
FROM table 
WHERE Date BETWEEN '2013-01-20' AND '2013-02-19'

因此,T-SQL查询按原样从我的数据库中提取。我如何每个月自动获得正确的日期?等(2013-01-20和2013-02-19)

我一直在阅读有关日期范围的内容,但从未找到任何可以解决我特定问题的内容。

1 个答案:

答案 0 :(得分:0)

您可以定义两个变量并分配这样的值,并在where子句中使用。

SET @startingMonth= CAST(CAST(YEAR(getdate()) AS varchar) + '-' +  CAST(MONTH(getdate()) AS varchar) + '-' + '20' AS DATETIME)

IF(MONTH(getdate())<>12)
  BEGIN
   SET @endMonth= CAST(CAST(YEAR(getdate()) AS varchar) + '-' +  CAST(MONTH(getdate())+1 AS varchar) + '-' + '19' AS DATETIME)
  END
ELSE
  BEGIN
   SET @endMonth= CAST(CAST(YEAR(getdate())+1 AS varchar) + '-' +  CAST(1 AS varchar) + '-' + '19' AS DATETIME)
  END