sql >> Databáze >  >> RDS >> PostgreSQL

Proč je moje časové razítko posunuto v časovém pásmu?

Pokud databáze neposkytuje informace o časovém pásmu, měl by s ní ovladač JDBC zacházet, jako by se nacházel v místním časovém pásmu JVM (viz PreparedStatement.setDate(int, Date) ):

Javadoc a specifikace JDBC výslovně neříkají nic o ResultSet atd., ale aby byla konzistentní, většina ovladačů toto pravidlo použije také na data získaná z databáze. Pokud chcete explicitní kontrolu nad použitým časovým pásmem, budete muset použít různé set/getDate/Time/Timestamp metody, které také přijímají Calendar objekt ve správném časovém pásmu.

Některé ovladače také poskytují vlastnost připojení, která vám umožňuje určit časové pásmo, které se má použít při převodu do/z databáze.



  1. duplicitní záznamy v SQL JOIN

  2. Je sdružování připojení nutností v ODP.NET?

  3. Aktualizace MySQL dotazu na vnitřní spojení tabulek

  4. SQLAlchemy pořadí podle výsledku funkce