2017-06-01 4 views
3

Angenommen, wir haben eine Relation R (A, B), mit A enthält int-Werte und B enthält Timestamps.SQL, Ganzzahl für Timestamp-Subtraktion konvertieren

Wir müssen berechnen: (time in B in minutes) - (int to minutes).

Beispiel: (125, "2017-06-01 16:23:00")

16:23:00 = 983 min 
125 = 125min 

983 - 125 = 858min

Die Elemente von A repräsentieren Minuten, mein Problem ist, eine ganze Zahl Wert >59-hh:mm zu konvertieren, da MAKETIME(hh, mm, ss) nur in den Werken Bereich 0 bis 59.

+2

Markieren Sie die von Ihnen verwendeten dbms. (MAKETIME ist produktspezifisch.) – jarlh

+0

Sorry, aber was genau meinst du mit tag und – normalUser221

+0

Von dem ungenannten Pferd behoben. (Die blaue Box mit dem Text "mysql", neben den Tags "sql" und "sql-timestamp".) – jarlh

Antwort

2

Sie müssen die Zeit Ihrer Zeitstempelspalte nicht in Minuten konvertieren.

Just do

SELECT B - INTERVAL A MINUTE; 

Wenn Sie wirklich nur die Zeit wollen aus tun

SELECT TIME(B) - INTERVAL A MINUTE; 

abgezogen werden, um das Datum Teil unangetastet zu lassen:

SELECT CONCAT(DATE(B), ' ', TIME(B) - INTERVAL A MINUTE); 

Wenn Sie unbedingt die Minuten danach brauchen:

SELECT HOUR(TIME(B) - INTERVAL A MINUTE) * 60 + MINUTE(TIME(B) - INTERVAL A MINUTE); 
Verwandte Themen