我正在为我的商家数据做一份报告,以了解他们开始业务以来的年数或月数。因此,在我的表中,我有一个 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。
SELECT BusinessStartDate,
DATEDIFF(MONTH, BusinessStartDate, CURRENT_TIMESTAMP)
FROM dbo.table_name;
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