sql >> Databáze >  >> RDS >> Mysql

MySQL datetime nevrací čas

Musíte použít metody getTime() nebo getTimestamp(), jak navrhuje Thomas v komentáři. Abych uvedl příklad...

Řekněme pro tabulku, na kterou se dotazujete takto:rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");

Můžete udělat:

java.sql.Time dbSqlTime = rs.getTime(1);
java.sql.Date dbSqlDate = rs.getDate(2);
java.sql.Timestamp dbSqlTimestamp = rs.getTimestamp(3);

Pokud chcete použít objekt data Java:

java.util.Date dbSqlTimeConverted = new java.util.Date(dbSqlTime.getTime());
java.util.Date dbSqlDateConverted = new java.util.Date(dbSqlDate.getTime());

Také bych se podíval na JodaTime pro práci s Dates v Javě, dělá život mnohem jednodušší.

Nakonec stojí za zmínku, že mezi Timestamp a DateTime v MySQL je několik rozdílů. Konkrétně, že Timestamp má časové pásmo a server vrátí dotazované Timestamp v místním čase serveru (což může být nepříjemné). Moje rada je používat DateTime a vždy udržovat data/časy ve stejném časovém pásmu (tj. UTC). Viz http://dev.mysql.com/doc/refman/ 5.0/en/datetime.html



  1. Jak vyprázdnit všechny řádky ze všech tabulek v mysql (v sql)

  2. Jak uložit IP v mySQL

  3. Jak získat datum z řetězce v Oracle

  4. SQL dotaz:Smazat všechny záznamy z tabulky kromě posledních N?