商人データのレポートを作成して、商人がビジネスを開始してからの年数または月数を調べています。したがって、私のテーブルにはBusinessStartDateがありますが、たとえば、彼らが事業を開始してからの年または月を知りたいです。
BusinessStartdate No of years or Months
2003-02-01 00:00:00.000 9
SQL Server 2008 を使用しています。
商人データのレポートを作成して、商人がビジネスを開始してからの年数または月数を調べています。したがって、私のテーブルにはBusinessStartDateがありますが、たとえば、彼らが事業を開始してからの年または月を知りたいです。
BusinessStartdate No of years or Months
2003-02-01 00:00:00.000 9
SQL Server 2008 を使用しています。
case
when datediff(mm, BusinessStartDate, current_timestamp) > 12
then datediff(yy, BusinessStartDate, current_timestamp)
else datediff(mm, BusinessStartDate, current_timestamp)
end
カウントの方法についての答えの下にある私のコメントに注意してください。このバージョンは、記念日に関して私たちが通常考えているものに対応していません。以下の式は通常に少し近いので、比較に使用できます。誕生日と年齢の問題に対処する他の答えはたくさんあります。
case
when datediff(mm, BusinessStartDate, current_timestamp) > 12
then datediff(dd, BusinessStartDate, current_timestamp) / 365
else datediff(dd, BusinessStartDate, current_timestamp) / 30
end
SELECT BusinessStartDate,
DATEDIFF(MONTH, BusinessStartDate, CURRENT_TIMESTAMP)
FROM dbo.table_name;