Sql 查找日期差异以获取年数

Sql 查找日期差异以获取年数,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一列存储学生学年数据类型:INT as 2010年夏季=201100 2010年秋季=201110 2010年春季=201120 如果当前学年为2016年春季,即201720年 如何找出年份中日期之间的差异?将整数值转换为日期时间值,例如201120变为2010-04-01等,然后使用DateDiff。可能只使用LEFT,因为您只需要年份 DECLARE @academic_year INT = 201100 DECLARE @current_academic_year INT = 2017

我有一列存储学生学年数据类型:INT as

2010年夏季=201100

2010年秋季=201110

2010年春季=201120

如果当前学年为2016年春季,即201720年


如何找出年份中日期之间的差异?

将整数值转换为日期时间值,例如201120变为2010-04-01等,然后使用DateDiff。

可能只使用LEFT,因为您只需要年份

DECLARE @academic_year INT = 201100
DECLARE @current_academic_year INT = 201720

SELECT CAST(LEFT(@current_academic_year, 4) AS INT) - CAST(LEFT(@academic_year, 4) AS INT)

如果2010年春天是201120,2016年春天不是201720年吗?如果月份不是数据的一部分,你应该如何计算月份?2010年夏季和2010年秋季之间的月份差异是什么?应该是201720,我已经更新了,我只需要几年。你的日期对我来说毫无意义。前4位是年份,那么“00”、“10”、“20”呢?它们显然不是月数。学年由代码定义为学年结束的年份。学年从夏天开始,到春天结束。它实际上起了作用。。。我也尝试过同样的方法,但收到了一些错误,但您的查询帮助我解决了问题。谢谢