Nhà phát triển SQL chỉ trả về ngày, không phải thời gian. Làm thế nào để tôi sửa lỗi này?


167

Đây là những gì SQL Develoepr mang lại cho tôi, cả trong cửa sổ kết quả và khi tôi xuất:

CREATION_TIME       
------------------- 
27-SEP-12
27-SEP-12
27-SEP-12

Đây là những gì một phần mềm khác chạy cùng truy vấn / db cung cấp:

CREATION_TIME       
------------------- 
2012-09-27 14:44:46 
2012-09-27 14:44:27 
2012-09-27 14:43:53 

Làm cách nào để SQL Developer trả lại thời gian?

Câu trả lời một phần:

select TO_CHAR(creation_time,'DD-Mon-YYYY HH24:MI:SS') from 

Nếu bất cứ ai biết cách đặt mặc định để hiển thị thông tin đầy đủ, vui lòng trả lời bên dưới.

Câu trả lời:


363

Bạn có thể thử cái này không?

Chuyển đến Công cụ> Tùy chọn> Cơ sở dữ liệu> NLS và đặt Định dạng ngày là MM / DD / YYYY HH24: MI: SS


8
Trong phiên bản tiếng Đức: Extra> Voreinstellungen> Datenbank> NLS
Olivier Faucheux 24/07/13

9
WOW ... điều này thật đẹp. Không thể tin rằng tôi đã thực hiện chuyển đổi trong selecttuyên bố.
Leniel Maccaferri

15
'Không logic Setting' :-)
worldwidejimbo

3
Không! Nó là viết tắt của Hỗ trợ ngôn ngữ quốc gia. Nó được sử dụng để xác định cài đặt ngày, số, tiền tệ và ngôn ngữ quốc gia.
dùng2441441

2
Lưu ý: Tôi cần kết nối lại với cơ sở dữ liệu để cài đặt này có hiệu lực
bắt đầu từ

35

Định dạng ngày cũng có thể được đặt bằng cách sử dụng truy vấn bên dưới: -

thay đổi bộ SESSION NLS_DATE_FORMAT = 'date_format'

ví dụ: thay đổi SESSION đặt NLS_DATE_FORMAT = 'DD-MM-YYYY HH24: MI: SS'


21

Để mở rộng một số câu trả lời trước đó, tôi thấy rằng các đối tượng Oracle DATE hoạt động khác với các đối tượng Oracle TIMESTAMP. Cụ thể, nếu bạn đặt NLS_DATE_FORMAT của bạn để bao gồm các giây phân số, toàn bộ phần thời gian sẽ bị bỏ qua.

  • Định dạng "YYYY-MM-DD HH24: MI: SS" hoạt động như mong đợi, cho DATE và TIMESTAMP
  • Định dạng "YYYY-MM-DD HH24: MI: SSXFF" chỉ hiển thị phần ngày cho NGÀY, hoạt động như mong đợi cho TIMESTAMP

Sở thích cá nhân của tôi là đặt DATE thành "YYYY-MM-DD HH24: MI: SS" và đặt TIMESTAMP thành "YYYY-MM-DD HH24: MI: SSXFF".


Cảm ơn, điều này thực sự giúp tôi - tôi chỉ sao chép định dạng từ dấu thời gian và không thể hiểu tại sao nó không hoạt động.
fleeblewidget

Có một lý do (ngoài tiêu chuẩn) để sử dụng YYYY-MM-DD HH24:MI:SSso với DD-MM-YYYY HH24:MI:SS?
Nathan Goings

Tôi luôn đặt năm đầu tiên để tránh nhầm lẫn. Ở Mỹ, trình tự điển hình là MM-DD-YYYY. Ở nơi khác đó là DD-MM-YYYY. Rắc rối là, bạn không thể phân biệt chúng trong những ngày từ 1 đến 12. Vì vậy, tôi luôn đặt năm đầu tiên. Và tôi chưa bao giờ chạy qua bất cứ thứ gì đặt năm đầu tiên mà không theo sau với tháng này qua ngày khác. Nó cũng sắp xếp sạch sẽ như một chuỗi, đó là một tác dụng phụ tiện dụng.
trevorsky

16

Từ Công cụ> Tùy chọn> Cơ sở dữ liệu> Tham số NLS và đặt Định dạng ngày là

DD-MON-RR HH: MI: SS


4

Điều này sẽ giúp bạn có được giờ, phút và thứ hai. hey uy tín.

select
  to_char(CREATION_TIME,'RRRR') year, 
  to_char(CREATION_TIME,'MM') MONTH, 
  to_char(CREATION_TIME,'DD') DAY, 
  to_char(CREATION_TIME,'HH:MM:SS') TIME,
  sum(bytes) Bytes 
from 
  v$datafile 
group by 
  to_char(CREATION_TIME,'RRRR'), 
  to_char(CREATION_TIME,'MM'), 
  to_char(CREATION_TIME,'DD'), 
  to_char(CREATION_TIME,'HH:MM:SS') 
 ORDER BY 1, 2; 

3

Cả hai câu trả lời này đều không phù hợp với tôi, không phải tùy chọn cấu hình Preferences NLS hoặc câu lệnh ALTER. Đây là cách tiếp cận duy nhất có hiệu quả trong trường hợp của tôi:

dbms_session.set_nls('nls_date_format','''DD-MM-YYYY HH24:MI:SS''');

* được thêm sau câu lệnh BEGIN

Tôi đang sử dụng PL / SQL Developer v9.03.1641

Hy vọng điều này sẽ giúp ích cho ai đó!


-1

Vâng, tôi tìm thấy theo cách này:

Nhà phát triển SQL SQL (Biểu tượng trên cùng bên trái)> Tùy chọn> Cơ sở dữ liệu> NLS và đặt Định dạng ngày là MM / DD / YYYY HH24: MI: SS

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.