【问题标题】:Access SQL format DateDiff hh:nn:ss访问 SQL 格式 DateDiff hh:nn:ss
【发布时间】:2017-02-09 05:41:38
【问题描述】:

使用 Access 2010

我正在尝试获取两个日期时间条目的差异,并以“小时(s):分钟(s):秒(s)”的格式显示该值。我有以下 SQL 语句,但它总是产生:“00:00:00”。我做错了什么?

SELECT TOP 500 
    [ID], 
    [USERNAME], 
    [TIME_ENTER], 
    [TIME_EXIT], 
    FORMAT ( 
      DATEDIFF("s", [TIME_ENTER], [TIME_EXIT]),  "hh:nn:ss"
    )  AS HH_MM_SS
 FROM tbl_logs_sessions;

[TIME_ENTER][TIME_EXIT] 列设置为“日期/时间”,格式为“常规日期”

【问题讨论】:

  • "s" 是秒,它将返回以秒为单位的差异。而不是只做正常的减法并格式化日期结果.. vba.Format(#11:00:10# - # 23:00:00#,"hh:mm:ss") = 11:59:50

标签: sql ms-access datediff


【解决方案1】:

DATEDIFF 返回的数字不能转换为“hh:ss:ss”,因为它不是日期。

改为:

FORMAT(DATEADD("s", DATEDIFF("s", [TIME_ENTER], [TIME_EXIT]), #00:00:00#), "hh:nn:ss")

请注意,如果时差超过 24 小时,您将折返至午夜。

【讨论】:

  • 这是完美的。用户不会超过 24 小时,所以谢谢!
【解决方案2】:

你可以简单地使用:

FORMAT([TIME_EXIT] - [TIME_ENTER], "hh:nn:ss") AS HH_MM_SS

【讨论】:

    猜你喜欢
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    • 2016-04-21
    相关资源
    最近更新 更多