Apache Derby: typ danych DATE
Opis
Zestaw liczb określających datę
Składnia
DATE
Odpowiadający typ Java
java.lang.Date
Odpowiadający typ JDBC
java.sql.Types.DATE
Zakres
Data może być podana jako:
- yyyy-mm-dd
- mm/dd/yyyy
- dd.mm.yyyy
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.
Ograniczenia
Derby akceptuje również daty podawane w formacie specyficznym dla danej lokalizacji, ale w przypadku wątpliwości formaty wbudowane mają pierwszeństwo.
h5 class=”derby”>Klasa R057_DATE.java
package aderby.types; import aderby.DerbyUtil; import java.sql.*; public class R057_DATE { private static final String baza = "C:/Przyklady/R057"; private static final String skrypt = "aderby/src/resources/sqls/daty.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 daty"); while (rs.next()) { System.out.println( rs.getDate("data") + " " + rs.getString("zdarzenie")); } } catch (SQLException e) { e.printStackTrace(); } DerbyUtil.close(rs); DerbyUtil.close(stat); DerbyUtil.close(con); DerbyUtil.shutdownEmbeddedDB(baza); DerbyUtil.shutdownDerbyEngine(); } }
Plik daty.sql
CREATE TABLE daty( id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY( START WITH 1, INCREMENT BY 1), data DATE, zdarzenie VARCHAR(64) ); CREATE INDEX i_data ON daty (data ASC); INSERT INTO daty VALUES (DEFAULT, '1952-6-4', 'Urodziny'); INSERT INTO daty VALUES (DEFAULT, '6/4/1968', 'Ukończenie szkoły podstawowej'); INSERT INTO daty VALUES (DEFAULT, '26.6.1972', 'Ukończenie liceum'); INSERT INTO daty VALUES (DEFAULT, '1977-6-25', 'dyplom magistra biologii');
Po uruchomieniu klasy na konsoli zobaczymy:
1952-06-04 Urodziny 1968-06-04 Ukończenie szkoły podstawowej 1972-06-26 Ukończenie liceum 1977-06-25 dyplom magistra biologii
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.
Kilka wygodnych metod do zamiany dat znajduje się w klasie DateUtil.java