Khi sử dụng Cơ sở dữ liệu Oracle, bạn có thể sử dụng TO_CHAR(datetime)
hàm để trả về các phần khác nhau của giá trị ngày giờ, bao gồm cả giây phân số.
Để trả về phần giây phân số từ giá trị datetime, hãy sử dụng FF
phần tử định dạng.
Ví dụ
Dưới đây là một ví dụ để chứng minh:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF')
FROM DUAL;
Kết quả:
123456789
Cũng có thể giới hạn độ chính xác bằng cách thêm một số vào FF
phần:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'FF5')
FROM DUAL;
Kết quả:
12345
Số có thể là 1
thông qua 9
.
Dành phần giây trước
Trong các ví dụ trên, tôi chỉ trả lại phần giây phân số và không trả lại phần nào khác.
Chúng ta có thể bao gồm phần giây cũng như phần giây. Để thực hiện việc này, hãy sử dụng SS
. Chúng tôi cũng có thể sử dụng X
để chỉ định ký tự cơ số (ký hiệu dùng để tách phần nguyên khỏi phần phân số):
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
Kết quả:
37.123456789
Mặc dù bạn có thể cung cấp một cách rõ ràng ký tự cơ số của riêng mình - ví dụ:một dấu dừng đầy đủ (.
), X
phần tử định dạng có thể hữu ích để chuyển qua các ngôn ngữ / lãnh thổ khác nhau.
Khi tôi chạy các ví dụ trên, NLS_TERRITORY
của tôi tham số đã được đặt thành AUSTRALIA
, dẫn đến ký tự cơ số là một điểm dừng đầy đủ.
Đây là những gì sẽ xảy ra khi tôi thay đổi NLS_TERRITORY
của mình tham số thành GERMANY
:
ALTER SESSION SET NLS_TERRITORY = 'GERMANY';
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
Kết quả:
37.123456789
Bây giờ ký tự cơ số là dấu phẩy.
Nó thực sự là NLS_NUMERIC_CHARACTERS
tham số chỉ định ký tự nào được sử dụng cho ký tự cơ số. Tuy nhiên, việc thay đổi NLS_TERRITORY
tham số thay đổi hoàn toàn NLS_NUMERIC_CHARACTERS
tham số. Bạn cũng có thể cập nhật rõ ràng NLS_NUMERIC_CHARACTERS
nếu bạn thích, trong trường hợp đó, NLS_TERRITORY
của bạn tham số sẽ không thay đổi.
Xem Danh sách các phần tử định dạng ngày giờ trong Oracle để biết danh sách đầy đủ các phần tử định dạng có thể được sử dụng để định dạng giá trị ngày giờ.