AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sekunden formatieren

Ein Thema von API · begonnen am 8. Jul 2016 · letzter Beitrag vom 9. Jul 2016
Antwort Antwort
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#1

Sekunden formatieren

  Alt 8. Jul 2016, 08:50
Datenbank: MS SQL Server • Version: 2008 • Zugriff über: SSMS
Hallo,

wie formatiere ich am besten Sekunden als [mm]:ss, so dass der Output wie auf dem Screenshot erscheint?
habe eine 'Funktion' zusammengestrickt, welche zwar das gewünschte Ergebnis liefert aber für meinen Geschmack etwas zu lange und unübersichtlich ist.

Code:
SELECT [Dauer] = CASE
      WHEN LEN(CAST([Dauer] AS INT) / 60) = 1
         THEN CAST(REPLACE(STR(CAST([Dauer] AS INT) / 60, 2), ' ', '0') AS CHAR(2)) + ':' + CAST(REPLACE(STR(CAST([Dauer] AS INT) % 60, 2), ' ', '0') AS CHAR(2))
      ELSE CAST(CAST([Dauer] AS INT) / 60 AS VARCHAR) + ':' + CAST(REPLACE(STR(CAST([Dauer] AS INT) % 60, 2), ' ', '0') AS CHAR(2))
      END
FROM tblX
PS: [DURATION] is vom Typ float.
Miniaturansicht angehängter Grafiken
output.png  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.006 Beiträge
 
Delphi 12 Athens
 
#2

AW: Sekunden formatieren

  Alt 8. Jul 2016, 09:12
Vielleicht so?

CONCAT(FORMAT([Dauer]/60, '#00'), ':', Format(CAST([Dauer] as INT) % 60, '00'))
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#3

AW: Sekunden formatieren

  Alt 8. Jul 2016, 09:31
Danke. Leider kann ich Format nicht verwenden. Ist leider erst ab SQL Server 2012 verfügbar

Zitat:
'FORMAT' wird nicht als Name einer integrierten Funktion erkannt.
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#4

AW: Sekunden formatieren

  Alt 8. Jul 2016, 10:26
Habe noch eine einfachere Möglichkeit gefunden, doch das funktioniert nur bis @Dauer 5999, das wird als 99:59 ausgegeben.
Bei @id INT = 6000 wird es als 0*:00 angezeigt.

Zitat:
DECLARE @Dauer INT = 5999
SELECT RIGHT('0' + CONVERT(varchar(2), (@Dauer / 60)), 2) + ':' + RIGHT('0' + CONVERT(varchar(2), @Dauer % 60), 2)
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#5

AW: Sekunden formatieren

  Alt 8. Jul 2016, 10:35
ich denke, so passt es:

Code:
SELECT RIGHT('0' + CONVERT(varchar(5), (@id / 60)), LEN(@id/60)) + ':' + RIGHT('0' + CONVERT(varchar(2), @id % 60), 2)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.131 Beiträge
 
Delphi 12 Athens
 
#6

AW: Sekunden formatieren

  Alt 9. Jul 2016, 02:50
Eine "Format"-Funktion wird es garantiert geben, aber eventuell heißt sie etwas anders, aber das sollte ja ein Blick in die Dokumentation klären.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.006 Beiträge
 
Delphi 12 Athens
 
#7

AW: Sekunden formatieren

  Alt 9. Jul 2016, 08:40
Eine "Format"-Funktion wird es garantiert geben, aber eventuell heißt sie etwas anders, aber das sollte ja ein Blick in die Dokumentation klären.
Es ist tatsächlich so, daß die FORMAT-Funktion erst in SQL Server 2012 Einzug fand. Eine frühere Funktion dieser Art ist mir auch nicht bekannt. Ich hatte bei meiner Antwort schlichtweg die Angabe von SQL Server 2008 übersehen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz