首页 > 解决方案 > 提取日/时/分

问题描述

我有以下正在运行的代码,但是如何获取终端分钟以将输出显示为天、小时、分钟?如果无法做到这一点,是否可以在时间上添加 +1 表示它是第二天?

我遇到的问题是,当我们的订单在下午 23.59 之后运行时,由于 24 小时时间段,系统没有显示正确的格式。

在此处输入图像描述 我很难过,希望我不会混淆问题。

SELECT FOLIO_NUMBER, TERMINAL_NAME,
  format((START_LOAD_TIME - ORDER_ENTRY_TIME), 'HH:mm') AS STAGING_MINUTES, 
  format((TERM_END_LOAD_TIME - START_LOAD_TIME), 'HH:mm') AS LOADING_MINUTES,
  format((TERM_END_LOAD_TIME - ORDER_ENTRY_TIME), 'HH:mm') AS TERMINAL_MINUTES 
FROM ORDERS  
JOIN TERMINAL_OWNER ON ORDERS.LOADING_TERMINAL_ID = TERMINAL_OWNER.TERMINAL_ID

标签: sqlsql-serverdate

解决方案


DECLARE @INT INT

SET @INT = DATEDIFF(SECOND,GETDATE(),GETDATE()+1)

select 
convert(varchar(10), (@INT/86400)) + ':' + 
convert(varchar(10), ((@INT%86400)/3600)) + ':'+
convert(varchar(10), (((@INT%86400)%3600)/60)) + ':'+
convert(varchar(10), (((@INT%86400)%3600)%60)) as 'DD:HH:MM:SS'

由 Nat-MS 提供。看这里


推荐阅读