我正在为我的商家数据做一份报告,以了解他们开展业务以来的年数或月数。所以在我的表中我有一个BusinessStartDate,但我想知道自从他们开始他们的业务以来的年份或月份:
BusinessStartdate No of years or Months
2003-02-01 00:00:00.000 9
我正在使用SQL Server 2008。
答案 0 :(得分:2)
SELECT BusinessStartDate,
DATEDIFF(MONTH, BusinessStartDate, CURRENT_TIMESTAMP)
FROM dbo.table_name;
答案 1 :(得分: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