使用 ID 计算 DATEDIFF
Calculate DATEDIFF with IDs
我是 SQL 初学者,所以其他帖子并没有真正帮助我。
我的数据库中有一个名为 'mission' 的 table,它存储每个任务发生的 ID 和日期。我想做的是计算每个条目之间的天数并将其显示在另一列中。
我发现 DATEDIFF 函数最适合用于此目的。
id,name,campaign_id,real_date,hist_date,mission_status
1,"The Fall of France I",2,2013-12-08,"1940-05-11 11:00:00",2
2,"The Fall of France II",2,2013-12-15,"1940-05-15 15:30:00",2
3,"The Fall of France III",2,2013-12-22,"1940-05-21 15:30:00",2
4,"The Fall of France IV",2,2014-01-05,"1940-05-24 05:30:00",2
5,"The Fall of France V",2,2014-01-12,"1940-06-01 05:30:00",2
6,"The Fall of France VI",2,2014-01-19,"1940-06-12 13:10:00",2
我希望 table 在第 1 列中列出任务的 ID,在第 2 列中列出其 hist_date,在第 3 列中以天为单位列出每个日期条目之间的差异。
例如
id,hist_date,diff
1,"1940-05-11 11:00:00",0
2,"1940-05-15 15:30:00",4
试试这个 (T-SQL)。即使您的 Id 列不连续,它也能正常工作,例如,如果记录被删除。
SELECT A.Id, A.hist_date, ISNULL(DATEDIFF(Y, Max(B.hist_date), A.hist_date), 0) AS diff
FROM Mission AS A
LEFT JOIN Mission AS B ON B.Id<A.id
GROUP BY A.Id, A.hist_date
结果
Id hist_date diff
1 1940-05-11 11:00:00.000 0
2 1940-05-15 15:30:00.000 4
3 1940-05-21 15:30:00.000 6
4 1940-05-24 05:30:00.000 3
5 1940-06-01 05:30:00.000 8
6 1940-06-12 13:10:00.000 11
我是 SQL 初学者,所以其他帖子并没有真正帮助我。
我的数据库中有一个名为 'mission' 的 table,它存储每个任务发生的 ID 和日期。我想做的是计算每个条目之间的天数并将其显示在另一列中。
我发现 DATEDIFF 函数最适合用于此目的。
id,name,campaign_id,real_date,hist_date,mission_status
1,"The Fall of France I",2,2013-12-08,"1940-05-11 11:00:00",2
2,"The Fall of France II",2,2013-12-15,"1940-05-15 15:30:00",2
3,"The Fall of France III",2,2013-12-22,"1940-05-21 15:30:00",2
4,"The Fall of France IV",2,2014-01-05,"1940-05-24 05:30:00",2
5,"The Fall of France V",2,2014-01-12,"1940-06-01 05:30:00",2
6,"The Fall of France VI",2,2014-01-19,"1940-06-12 13:10:00",2
我希望 table 在第 1 列中列出任务的 ID,在第 2 列中列出其 hist_date,在第 3 列中以天为单位列出每个日期条目之间的差异。 例如
id,hist_date,diff
1,"1940-05-11 11:00:00",0
2,"1940-05-15 15:30:00",4
试试这个 (T-SQL)。即使您的 Id 列不连续,它也能正常工作,例如,如果记录被删除。
SELECT A.Id, A.hist_date, ISNULL(DATEDIFF(Y, Max(B.hist_date), A.hist_date), 0) AS diff
FROM Mission AS A
LEFT JOIN Mission AS B ON B.Id<A.id
GROUP BY A.Id, A.hist_date
结果
Id hist_date diff
1 1940-05-11 11:00:00.000 0
2 1940-05-15 15:30:00.000 4
3 1940-05-21 15:30:00.000 6
4 1940-05-24 05:30:00.000 3
5 1940-06-01 05:30:00.000 8
6 1940-06-12 13:10:00.000 11