首页 > 解决方案 > 在 SQL Server 中减去日期

问题描述

我正在尝试将 PostgreSQL 查询转换为 T-SQL 查询,但我无法获得此 PostgreSQL 行的正确语法:

ROUND(CAST((CURRENT_DATE - setupdate) AS decimal) /365,1) AS RetentionYears

将其转换为 T-SQL 时,我已经尝试过

ROUND(CAST((GETDATE() - setupdate) AS Decimal) / 365, 1) AS RetentionYears

但是当我运行时,我得到了错误

消息 402,级别 16,状态 1,第 43 行
数据类型 datetime 和 date 在减法运算符中不兼容。

在 T-SQL 中编写该语句的正确方法是什么?

标签: sql-servertsqlsql-server-2016

解决方案


你想要datediff()

DATEDIFF(year, current_timestamp, setupdate) As RetentionYears

推荐阅读