-1

我正在为我的商家数据做一份报告,以了解他们开始业务以来的年数或月数。因此,在我的表中,我有一个 BusinessStartDate,但我想找出他们开始业务以来的年份或月份,例如:

BusinessStartdate           No of years or Months

2003-02-01 00:00:00.000     9

我正在使用 SQL Server 2008。

4

2 回答 2

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