Ist es möglich, ein TIMESTAMP-Feld in die Anzahl der Millisekunden seit der Epoche zu konvertieren?Datum in Millisekunden seit Epoche mit Apache Derby konvertieren
Etwas wie:
select
toEpoch(current_timestamp)
from SYSIBM.SYSDUMMY1;
Ist es möglich, ein TIMESTAMP-Feld in die Anzahl der Millisekunden seit der Epoche zu konvertieren?Datum in Millisekunden seit Epoche mit Apache Derby konvertieren
Etwas wie:
select
toEpoch(current_timestamp)
from SYSIBM.SYSDUMMY1;
Apache Derby nicht über eine native Funktion, aber es ist möglich, eigene erstellen und sie aus der Datenbank aufrufen.
Zuerst die Java-Methode erstellen, die das Datum konvertiert:
package DbExamples.StoredProcedures;
import java.sql.Timestamp;
public class DateUtilities {
public static long toEpoch(Timestamp inputDate) {
if (inputDate == null) {
return 0L;
}
Long result = inputDate.getTime();
return result;
}
}
Dann injizieren die JAR-Datei in die Datenbank die folgende SQL-Anweisung für die Datenbank durch Ausführen von:
CALL SQLJ.REMOVE_JAR('App.StoredProcedures', 0);
CALL SQLJ.INSTALL_JAR('C:\dev\DbExamples\dist\DbExamples.jar', 'App.StoredProcedures', 0);
CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.classpath', 'App.StoredProcedures');
Jetzt erstellen die gespeicherte Prozedur in der Datenbank, indem die folgende SQL-Anweisung ausgeführt wird:
Jetzt können Sie Ihre Abfrage:
select
toEpoch(current_timestamp)
from SYSIBM.SYSDUMMY1;
select
toEpoch(cast('2016-07-21 14:50:00' as timestamp))
from SYSIBM.SYSDUMMY1;
Siehe auch: http://stackoverflow.com/q/32581936/193453 und http://stackoverflow.com/q/11017780/193453, die verwandt sind, aber nicht das gleiche. Es wäre schön, alle "Derby Stored Procedure" Fragen und Antworten zusammen zu sammeln ... –
Hallo Bryan, ich stimme zu. Ich habe gerade gesehen, dass die Dokumentationsfunktion heute in die Betaversion geht. Vielleicht sollten wir das benutzen? – Fidel