0

我正在将我的工作班次记录到 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)

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

4

1 回答 1

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
于 2013-09-11T09:14:18.993 回答