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

2 つの変数を定義して、このように値を割り当て、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 に答える