Apache Derby: typ danych TIMESTAMP
Opis
Zestaw liczb określających dokładny czas
Składnia
TIMESTAMP
Odpowiadający typ JDBC
java.sql.Types.TIMESTAMP
Zakres
Datownik (stempel czasowy) może być podany jako:
- yyyy-mm-dd hh:mm:ss[.nnnnnnnnn]
- yyyy-mm-dd-hh.mm.ss[.nnnnnnnnn]
- ’yyyy’ – oznacza rok i zawsze jest 4-cyfrowy
’mm’ – oznacza miesiąc i może być 1-cyfrowy lub 2-cyfrowy.
’dd’ – oznacza dzień i może być 1-cyfrowy lub 2-cyfrowy.
’hh’ oznacza godzinę i może być 1-cyfrowy lub 2-cyfrowy.
’mm’ oznacza minuty i musi być 2-cyfrowy.
’ss’ – oznacza sekundy i musi być 2-cyfrowy.
’n’ – oznacza nanosekundy – jeśli są obecne mogą być mieć od jednej do dziewięciu cyfr.
Klasa R059_TIMESTMP
package aderby.types; import aderby.DerbyUtil; import java.sql.*; public class R059_TIMESTAMP { private static final String baza = "C:/Przyklady/R059"; private static final String skrypt = "aderby/src/resources/sqls/r059.sql"; public static void main(String[] args) { DerbyUtil.startDerbyEngine(DerbyUtil.embdriver); Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true"); DerbyUtil.jdbcRunScript(skrypt, con); Statement stat = null; ResultSet rs = null; try { stat = con.createStatement(); rs = stat.executeQuery("SELECT * FROM zdarzenia"); while (rs.next()) { System.out.println(rs.getString("zdarzenie") + " " + rs.getTimestamp("czas")); } } catch (SQLException e) { e.printStackTrace(); } DerbyUtil.close(rs); DerbyUtil.close(stat); DerbyUtil.close(con); DerbyUtil.shutdownEmbeddedDB(baza); DerbyUtil.shutdownDerbyEngine(); } }
Plik r059.sql
CREATE TABLE zdarzenia( id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY( START WITH 1, INCREMENT BY 1), zdarzenie VARCHAR(64), czas TIMESTAMP ); CREATE INDEX i_zdarzenie ON zdarzenia (zdarzenie ASC); INSERT INTO zdarzenia VALUES (DEFAULT, 'Pobudka', CURRENT TIMESTAMP); INSERT INTO zdarzenia VALUES (DEFAULT, 'Wyjazd do pracy', CURRENT TIMESTAMP); INSERT INTO zdarzenia VALUES (DEFAULT, 'Przyjazd do pracy', CURRENT TIMESTAMP); INSERT INTO zdarzenia VALUES (DEFAULT, 'Rozpoczęcie pracy',CURRENT TIMESTAMP); INSERT INTO zdarzenia VALUES (DEFAULT, 'Koniec pracy', CURRENT TIMESTAMP);
Po uruchomieniu klasy na konsoli zobaczymy:
Pobudka 2019-12-07 07:23:39.765 Wyjazd do pracy 2019-12-07 07:23:39.827 Przyjazd do pracy 2019-12-07 07:23:39.858 Rozpoczęcie pracy 2019-12-07 07:23:39.874 Koniec pracy 2019-12-07 07:23:39.874
Pliki do ściągnięcia
Aktualny (tworzony narastająco) plik module-info.java
Aktualny (tworzony narastająco) plik DerbyUtil.java
Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszystkich wpisach w projekcie. W przypadku pliku module-info.java
może być potrzebne skreślenie niepotrzebnych wpisów.