Oracle
 sql >> база данни >  >> RDS >> Oracle

ResultSet.getTimestamp(дата) срещу ResultSet.getTimestamp(дата, Calendar.getInstance(tz))

Първо, обърквате java.util с java.sql . Когато използвате PreparedStatement#setDate() и ResultSet#getDate() , имате нужда от java.sql.Date . Аналогично, когато използвате PreparedStatement#setTimestamp() и ResultSet#getTimestamp() имате нужда от java.sql.Timestamp .

Второ, важно е да разберете, че java.sql.Date представлява самодата (година, месец, ден) и нищо по-малко или повече. Това трябва да бъде съпоставено с SQL ДАТА тип поле. java.sql.Timestamp представлява клеймото за време (година, месец, ден, час, минута, секунда, милисекунда), точно както java.util.Date и java.util.Calendar прави. Това трябва да бъде съпоставено към SQL TIMESTAMP или DATETIME тип поле.

Що се отнася до часовите зони, имате нужда от тях, когато базата данни не съхранява информация за часовите зони (по този начин всички времеви марки се съхраняват в UTC (GMT)). След това можете да подадете Календар в който съдържа информация за текущата часова зона, така че JDBC драйверът да може да коригира UTC клеймото към клеймото, съответстващо на часовата зона. Ако е например GMT+1, тогава JDBC драйверът ще добави един час към клеймото за време, преди да се върне.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. База данни на Oracle - ORA-01460 - поискано е неизпълнено или неразумно преобразуване

  2. Избройте всички функции в базата данни на Oracle

  3. SQLPlus varchar2 извежда бели интервали

  4. Промяна на точността на числовата колона в Oracle

  5. Оператор Oracle Not Equals