我正在将我的工作班次记录到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)
我一直在阅读有关日期范围的内容,但从未找到任何可以解决我特定问题的内容。
答案 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