DateDiff, um Stunden und Minuten auszugeben

8

Mein Code gibt TOTAL HOURS in Stunden an, aber ich versuche etwas wie

auszugeben %Vor%

Dabei steht 8 für den Stundenanteil und 36 für den Minutenanteil. Insgesamt hat eine Person an einem einzigen Tag im Büro gearbeitet.

%Vor%     
Evil rising 21.01.2014, 05:22
quelle

11 Antworten

6

Kleine Änderungen wie diese können gemacht werden

%Vor%     
DhruvJoshi 21.01.2014, 05:36
quelle
11

Ganz einfach:

%Vor%

Zum Beispiel:

%Vor%

Yelds:

%Vor%     
MaurGi 02.12.2016 20:44
quelle
9

Ich würde Ihre endgültige Wahl als:

treffen %Vor%

Jede Lösung, die versucht, DATEDIFF(hour,... zu verwenden, ist kompliziert (wenn es korrekt ist), weil DATEDIFF Übergänge zählt - DATEDIFF(hour,...09:59',...10:01') gibt 1 wegen des Übergangs der Stunde von 9 auf 10 zurück. Also bin ich Verwenden Sie einfach DATEDIFF in Minuten.

Obiges kann immer noch subtil falsch sein, wenn Sekunden beteiligt sind (es kann etwas überzählig sein, weil es winzige Übergänge zählt). Wenn Sie also eine zweite oder eine Millisekunden-Genauigkeit benötigen, müssen Sie DATEDIFF anpassen, um diese Einheiten zu verwenden Konstanten (wie die Stunden eine oben), um nur Stunden und Minuten zurückzugeben.

    
Damien_The_Unbeliever 21.01.2014 06:52
quelle
7

Versuchen Sie diese Abfrage

%Vor%

Ausgabe

%Vor%     
Vignesh Kumar 21.01.2014 06:21
quelle
6

Ändern Sie einfach das

%Vor%

Teil zu

%Vor%

Das / 60 gibt Ihnen Stunden, das% 60 gibt Ihnen die verbleibenden Minuten und mit CONCAT können Sie einen Doppelpunkt dazwischen setzen.

Ich weiß, dass es eine alte Frage ist, aber ich bin darauf gestoßen und dachte, es könnte helfen, wenn jemand anders darauf stößt.

    
Rhino 09.04.2015 20:35
quelle
1

Bitte geben Sie den zugehörigen Wert an und versuchen Sie Folgendes:

%Vor%     
Faraz Ahmed 21.01.2014 06:10
quelle
0

das würde dich hacken

%Vor%     
Dhanilan 21.01.2014 06:05
quelle
0

Da jede DateTime in einen Float umgewandelt werden kann und der Dezimalteil der Zahl die Zeit selbst darstellt:

%Vor%

Dies ergibt eine Datumszeit wie '1900-01-01 Stunde des Tages', die Sie als Zeit, Zeitmarke oder sogar Convert umwandeln können, um die formatierte Zeit zu erhalten.

Ich denke, das funktioniert in jeder Version von SQL, da das Konvertieren von Datetime zu Float seit Version 2005 kompatibel ist.

Ich hoffe, es hilft.

    
Samuel Pereira 01.04.2015 14:05
quelle
0

Teilen Sie die Datediff in MS durch die Anzahl der ms in einem Tag, die in Datetime und dann in die Uhrzeit umgewandelt wird:

%Vor%     
Carl Nitzsche 21.10.2015 13:45
quelle
0

Wenn Sie das Format 08:30 (HH: MM) haben möchten, versuchen Sie dies,

%Vor%     
MAX 11.07.2016 10:50
quelle
0

Keine Notwendigkeit, durch Reifen zu springen. Subtrahieren Start von Ende gibt Ihnen im Wesentlichen die Zeitspanne (kombiniert Vignesh Kumars und Carl Nitzsches Antworten):

%Vor%

Ausgabe

%Vor%

Siehe die vollständigen Darsteller- und Konvertierungsoptionen hier: Ссылка

    
zomf 20.11.2016 01:51
quelle

Tags und Links