日期列和当前日期之间的 Datediff 函数?

Datediff function between a date column and current date?

如何正确计算日期列与当前日期之间的天数或年数差异?

通常会使用

  where date_diff('day, date_column1, date_column2) as difference

所以我需要的是,如果日期列和今天的日期之间的差异是 3 天然后 3 或 3 年然后 3。

谢谢

在 SQL SERVER 中,您可以使用以下查询(将日期替换为您的字段):

SELECT CASE WHEN datediff(year, '20120303', getdate()) > 1 
   THEN datediff(year, '20120303', getdate()) 
   ELSE datediff(day, '20120303', getdate()) END AS Diff

使用您的样本:

SELECT CASE WHEN datediff(year, date_column, getdate()) > 1 
   THEN datediff(year, date_column, getdate()) 
   ELSE datediff(day, date_column, getdate()) END AS Diff