MS Access中更新查询添加分钟至时间字段结果异常求助
解决MS Access考试排程系统中时间相加的问题
问题分析
你的SQL语句逻辑本身正确,但结果仅显示时长而非总时间,大概率是以下两个原因之一:
Endzeit字段的数据类型不是日期/时间- 字段显示格式未正确设置
解决方案
1. 确认Endzeit字段的数据类型
打开Timeslots表的设计视图:
- 找到
Endzeit字段,确保其数据类型为「日期/时间」 - 如果之前是数字或文本类型,修改为日期/时间(注意提前备份数据,避免丢失)
2. 验证计算逻辑(可选但推荐)
先创建一个选择查询确认DATEADD的计算结果是否正确:
SELECT Timeslots.Startzeit, Prüfungen.Dauer, DATEADD("n", Prüfungen.Dauer, Timeslots.Startzeit) AS BerechneteEndzeit FROM Prüfungen INNER JOIN Timeslots ON Prüfungen.ID = Timeslots.Prüfung;
执行这个查询,检查BerechneteEndzeit列是否显示为你期望的时间格式(如08:10)。如果这里结果正确,说明更新查询的逻辑没问题,问题出在Endzeit字段的设置上。
3. 执行更新查询
确认字段类型正确后,重新执行你的更新查询:
UPDATE Prüfungen INNER JOIN Timeslots ON Prüfungen.ID = Timeslots.Prüfung SET Timeslots.Endzeit = DATEADD("n", [Prüfungen]![Dauer], [Timeslots]![Startzeit]);
4. 设置字段显示格式
如果Endzeit字段是日期/时间类型,但显示仍然不对:
- 回到表设计视图,选中
Endzeit字段 - 在「格式」属性中选择「短时间」,或者自定义格式为
HH:nn,这样就会显示为你需要的24小时制时间格式。
内容的提问来源于stack exchange,提问作者Slyver
相关产品推荐
相关产品推荐

