-1

商人データのレポートを作成して、商人がビジネスを開始してからの年数または月数を調べています。したがって、私のテーブルにはBusinessStartDateがありますが、たとえば、彼らが事業を開始してからの年または月を知りたいです。

BusinessStartdate           No of years or Months

2003-02-01 00:00:00.000     9

SQL Server 2008 を使用しています。

4

2 に答える 2

2
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
于 2012-08-13T14:50:17.510 に答える
2
SELECT BusinessStartDate,
  DATEDIFF(MONTH, BusinessStartDate, CURRENT_TIMESTAMP)
  FROM dbo.table_name;
于 2012-08-13T14:49:30.207 に答える