sql >> Databasteknik >  >> RDS >> Oracle

NLS_DATE_FORMAT med JDBC

NLS-stöd från JDBC-drivrutinen bortfallet i Oracle 10g . Oavsett vilket skulle jag rekommendera att du inte använder den Oracle-specifika NLS-funktionaliteten för att formatera dina datum.

För att formatera ett datum som hämtats från valfri databas i Java, gör så här:

Connection conn = ods.getConnection();
Statement stat = conn.createStatement();

ResultSet rs = stat.executeQuery("select date_column from test_table");

DateFormat format = new SimpleDateFormat('yyyy-dd-MM');
System.out.println(format.format(rs.getDate(1));

Observera att en instans av SimpleDateFormat är återanvändbar men inte trådsäker .

Om du använder Java 8 kanske du vill använda det nya och förbättrade Java Time API istället. Tyvärr har ResultSet inte uppdaterats för att returnera en instans av DateTime ännu, så du måste konvertera. Kolla in DateTimeFormatter och denna fråga om hur man konverterar från gammalt till nytt. Bland andra fördelar är DateTimeFormatter helt trådsäker.

Formatmönstren för både den gamla och nya stilen är desamma; här är dokumenten för den nya.




  1. lägga till sträng till en select-sats som ska inkluderas i resultatuppsättningen

  2. Hitta det refererade tabellnamnet med hjälp av tabell-, fält- och schemanamn

  3. Söka efter databasobjekt och tabelldata i SQL Server

  4. MySQL CSV-import:datetime-värde