回答

收藏

T-SQL格式秒为HH:MM:SS时间

技术问答 技术问答 198 人阅读 | 0 人回复 | 2023-09-14

是否有任何棘手的格式来格式化小时,分钟,秒等秒。例如,
3 w  W2 d, i  x1 @" g; G% \( V: Y: d. T, {* [; _% L
3660
- W7 V: v% v* K5 ]5 x9 l" A
% k$ Z  D8 G: H9 k% Q1 X
秒将显示为
# H/ n3 ^- U1 e4 l0 K1 e' U+ Z3 m" _, |! ?
01h 01m 00s
  c' [8 e8 e# E- \% M& M  q7 u

# ^: d( I/ C3 U, W" s或者) q9 ?' t( G7 Q. n

) c# F4 J1 g+ O6 [01:01:00
* S  {3 c: l1 i9 \" Z

& o/ j! K/ q; C7 I! m1 b2 c8 w我知道这样做的标准方法:
: L. a# H% h% i! ^/ W4 D3 u[ol]将所有秒数除以3600,以获取小时数
3 O. J7 M6 e3 s8 U将剩下的秒数除以60得到分钟
5 J$ k! _) I( E4 W6 _8 P剩下的就是几秒钟
# \/ w4 _* g0 F" E- I[/ol]! [/ K% w4 Q; o7 U! R/ f4 x
我遇到了以下问题:* ^8 k; B9 X, N5 }
[ol]+ a) {8 E" v6 c
我无法创建执行此操作的单独功能。
2 z- H, A; Z4 H; j# x* g
' w& j# @3 K" X' C# V我的代码正在使用多个CTE进行查看。因此,只能使用CTE声明变量。! r- w1 _/ P1 s7 V* ]* o

. ^$ z8 o6 R4 e9 s4 y1 O  \7 I我无法使用标准解决方案,因为我将获得比一天更大的结果-如何使用T-SQL将Seconds转换为HH:MM:SS
7 D1 e: d5 y. P7 t
: t  s" V2 ?5 S7 Y7 a& x[/ol]
. X8 @# N8 p% o% l) }/ n7 w                . ]6 H/ ?9 i3 n! \
解决方案:
# f* A2 M6 [- r3 h* y0 L- e4 n3 u               
* o/ a8 L1 c8 j8 `1 p; F- B9 k0 x  u+ j# f" g# h2 l: v0 a
' f9 J, p8 G8 X* ?. n) X
                SELECT RIGHT(‘00’+CONVERT(VARCHAR(10),Seconds/3600),2)- C/ ]# @7 y# l
        +’:’
1 c& T9 s, `: _, m' Z! S        + RIGHT(‘00’+CONVERT(VARCHAR(2),(Seconds%3600)/60),2) / O/ L1 B9 J: @( I) p
        +’:’ 7 Z8 d2 X1 `0 I* A  p6 }1 C: d! r2 d9 ]
        + RIGHT(‘00’+CONVERT(VARCHAR(2),Seconds%60),2) AS [HH:MM:SS]
5 s( X$ E- v5 o- Z8 J8 {    FROM table1
5 e. o' A" Z# I结果:  ( H3 r& L% L! V5 l  ^" }& W% N
[table][tr][td]
3 X1 d) @" G! X& x" t  cHH:MM:SS
3 a. R* M& q- K" C[/td][/tr][tr][td]
/ y, q' G3 J7 D  t) v01:01:00# A" z3 P2 k" J- g" ]. t
[/td][/tr][tr][td]) w* h, a9 [( F- ]3 q# P
01:03:20
  V: _. ]/ T/ Z; G" e- n* P5 I9 l' {[/td][/tr][tr][td]1 w, n1 f# J  x. _1 l+ v& L3 L
01:10:00' M* G5 `' D; v! J  M) E
[/td][/tr][tr][td]
1 d3 X% P+ u% m# y, Y' f00:10:00
: e3 f5 p! M3 _& T[/td][/tr][tr][td]3 f& B$ J8 Q' ?
00:01:00
8 C0 I1 e0 {& N) d# Q6 C$ |" v[/td][/tr][tr][td]
- y$ [- p5 ]% k6 A00:00:30; H1 K* `2 V* F% I
[/td][/tr][tr][td]7 G. D( f1 g, S+ ~" ~" b; X
24:00:00' k: K$ l: D0 [, x  o* G4 c, w
[/td][/tr][tr][td]; H+ p4 g1 B% T4 d
24:06:40) d$ D  H8 J1 p# g

- \# C$ A- |$ V6 x看到这个SQLFiddle
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则