Konvertieren von dezimal-Zeit in Stunden und Minuten
Wurden, mit diesen zu kämpfen und kann nicht scheinen, um herauszufinden, die richtige Antwort, obwohl es eine Vielzahl von Erwähnungen, die für die Konvertierung, aber nicht spezifisch ist, zu arbeiten.
Brauche ich zum konvertieren einer Zeit mit Datentyp float in Stunden und Minuten. So wie 13.50 13.30 Uhr. Der Datentyp fixed float in der DB so nicht ändern kann. DB auf SQL-Server 2008R2
Versucht haben:
cast(cast(floor(fdsViewTimesheet.perStandardHours) as
float(2))+':'+cast(floor(100*(
fdsViewTimesheet.perStandardHours - floor(fdsViewTimesheet.perStandardHours)))as
float(2)) as time) AS STANDARD_HOURS
Aber ich erhalte eine Fehlermeldung "Explicit conversion from data type real to time is not allowed"
versucht Haben as char
statt as float
aber die Abfrage hängt sich auf.
Was mache ich falsch? Ich habe gerade want to convert a float value into hours and minutes
.
Wäre dankbar, wenn jemand könnte mich in die richtige Richtung.
- Sie können Dies Überprüfen, Antwort Es wird sicher arbeiten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen:
Ausgang : 20:33:35
Aber denken Sie daran : Geben Sie die Zeit in MSSQL nur unter 24h
Wenn Sie wollen mehr als 24 Stunden, versuchen Sie:
Leistung : 25:33:35
-- Update
Dezimal Minuten mehr als 24 Stunden
Ausgang: 01:17:54
Sollte diese Arbeit für Sie
DATEADD(mi, (fdsViewTimesheet.perStandardHours - FLOOR(fdsViewTimesheet.perStandardHours)) * 60, DATEADD(hh, FLOOR(fdsViewTimesheet.perStandardHours), CAST ('00:00:00' AS TIME)))
time
Datentyp - also was genau suchst du?Oder wenn Sie wollen einfach nur
hh:mm
als string:Nur vorsichtig sein, wenn Werte >= 24.
Wie über Sie zu konvertieren und Minuten hinzufügen, um die 00:00 Zeit etwa so:
Wenn Sie wollten, tun Sie es in der Anweisung mit der Zeit nur:
Wenn Sie die Werte haben, die größer als 24 Stunden, dann wird das standard-datetime-und Zeit-Typen in sql kann nicht halten diese. Sie sind begrenzt zu halten 24 Stunden reicht.
Was Sie würden tun müssen, ist, speichern Sie die Zeit-Darstellung in einer Zeichenkette zum Beispiel so: