Nó đang lưu ngày theo GMT không theo múi giờ địa phương của tôi. Nhưng khi tôi chèn qua shell bằng lệnh. db. kiểm tra. chèn [{ngày. Ngày tháng[]}];
Có cách nào để chèn Ngày theo định dạng múi giờ địa phương bằng java hoặc bất kỳ cách nào để chuyển đổi ngày thành múi giờ địa phương trong khi truy xuất
Cảm ơn & Trân trọng
- stackoverflow. comghi bàn. 1
Đối tượng Ngày java cố ý không phân biệt múi giờ và được cho là đại diện cho thời gian GMT [nó lưu trữ bên trong giá trị của nó dưới dạng mili giây kể từ ngày 1 tháng 1 năm 1970, 00. 00. 00 giờ GMT]. Tôi thực sự khuyên bạn nên làm việc với điều này và xử lý nội bộ tất cả các ngày tính theo GMT, vì nó giúp bạn tránh được nhiều rắc rối với thời gian tiết kiệm ánh sáng ban ngày hoặc khi ứng dụng của bạn sẽ được triển khai theo cách phân tán trong nhiều múi giờ
Để chuyển đổi một đối tượng Ngày thành hoặc từ các chuỗi đại diện cho nó trong múi giờ của người dùng, hãy sử dụng một SimpleDateFormat
mà bạn đã gọi phương thức với người dùng TimeZone
[phương thức tĩnh cung cấp cho bạn múi giờ của hệ thống cục bộ]
Bạn đang ở đây. Trang chủ / Hướng dẫn Java cốt lõi / JDBC - Java Database connectivity tutorial
Trong bài đăng này, chúng tôi sẽ Chèn dấu thời gian vào Jdbc với ví dụ/chương trình trong java
NGÀY và DẤU THỜI GIAN đều cho phép bạn lưu trữ NGÀY. THÁNG. NĂM GIỜ. PHÚT. THỨ HAI
NGÀY và DẤU THỜI GIAN cung cấp 7 byte để lưu trữ tất cả dữ liệu được đề cập ở trên
Tuy nhiên, TIMESTAMP cũng cho phép bạn lưu trữ GIÂY PHÂN SỐ
TIMESTAMP cung cấp 11 byte để lưu trữ GIÂY PHÂN SỐ
TIMESTAMP cũng cung cấp thêm 2 byte để lưu trữ TIMEZONE
Khi nào thì sử dụng NGÀY và DẤU THỜI GIAN?
Nếu chúng ta chỉ cần lưu trữ thời gian mà không cần nhiều độ chính xác, bạn phải chọn DATE
Tuy nhiên, nếu bạn cần thời gian được lưu trữ với độ chính xác cao thì ngay cả những giây nhỏ cũng có thể quan trọng
Ví dụ - Trong sòng bạc, các trò chơi đấu thầu và jackpot mà ngay cả những giây nhỏ cũng có thể quan trọng
--Trước khi thực thi chương trình java, hãy thực hiện các tập lệnh cơ sở dữ liệu này >
tạo bảng NHÂN VIÊN[TÊN varchar2[22], CREATION_DATE TIMESTAMP];
--Nếu bảng đã tồn tại thì thực hiện lệnh DROP >
thả bàn NHÂN VIÊN;
Để chèn dấu thời gian trong Jdbc, hãy sử dụng -
mới java. sql. Dấu thời gian[mới java. sử dụng. Ngày tháng[]. getTime[]]
Ví dụ/chương trình để chèn dấu thời gian trong Jdbc java >
nhập java. sql. Kết nối;
nhập java. sql. Trình quản lý trình điều khiển;
nhập java. sql. Báo cáo đã chuẩn bị sẵn;
nhập java. sql. Ngoại lệ SQL;
/** Bản quyền [c], AnkitMittal JavaMadeSoEasy. com */
lớp công khai InsertTimeStampJdbcExample {
công khai tĩnh void chính[Chuỗi. arg] {
Kết nối con = null;
PreparedStatement prepStmt = null;
thử {
// đăng ký lớp trình điều khiển Oracle
Lớp học. forName["oracle. jdbc. người lái xe. OracleDriver"];
// nhận kết nối
con = DriverManager. getConnection[
"jdbc. tiên tri. gầy. @localhost. 1521. orcl", "ankit",
"Oracle123"];
Hệ thống. ra. println["Kết nối thành công. "];
prepStmt = con
. chuẩn bịStatement["CHÈN vào EMPLOYEE [TÊN, CREATION_DATE] "
+ "giá trị [?, ?] " ];
prepStmt. setString[1, "ankit"];
prepStmt. setTimestamp[2,
mới java. sql. Dấu thời gian[mới java. sử dụng. Ngày tháng[]. getTime[]]];
// thực hiện truy vấn chèn
int numberOfRowsInserted = prepStmt.executeUpdate[];
Hệ thống. ra. println["numberOfRowsInserted=" + numberOfRowsInserted];
prepStmt. đóng lại[];// close PreparedStatement
con. đóng lại[];// close connection
} bắt [ClassNotFoundException e] {
e. printStackTrace[];
} bắt [SQLException e] {
e. printStackTrace[];
}
}
}
/*ĐẦU RA
Kết nối được thiết lập thành công
numberOfRowsInserted=1
*/
Sử dụng chương trình trên, chúng ta có thể Chèn dấu thời gian vào Jdbc trong java
Hãy thực thi truy vấn Sql để tìm nạp dấu thời gian từ bảng EMPLOYEE trong Oracle >
CHỌN TO_CHAR[CREATION_DATE,'MM/DD/YYYY HH24. MI. SS. FF3'] CREATION_DATE TỪ nhân viên;
CHỌN CREATION_DATE TỪ nhân viên;
Làm cách nào để chuyển đổi NGÀY thành DẤU THỜI GIAN?
CHỌN CAST[CREATION_DATE AS TIMESTAMP] CREATION_DATE TỪ nhân viên;
nhãn. Lõi Java JDBC