2013-07-29 66 views

Trả lời

46

CURRENT_DATECURRENT_TIMESTAMP trả về ngày và giờ hiện tại trong múi giờ phiên.

SYSDATESYSTIMESTAMP trả về ngày và giờ hệ thống - nghĩa là, của hệ thống mà cơ sở dữ liệu cư trú.

Nếu phiên khách hàng của bạn không nằm trong cùng múi giờ như máy chủ cơ sở dữ liệu đang bật (hoặc nói nó không phải là thông qua cài đặt NLS), hãy trộn các hàm SYS*CURRENT_* sẽ trả về các giá trị khác nhau. Họ đều chính xác, họ chỉ đại diện cho những thứ khác nhau. Có vẻ như máy chủ của bạn (hoặc nghĩ là) trong múi giờ +4: 00, trong khi phiên khách hàng của bạn ở múi giờ +4: 30.

Bạn cũng có thể thấy sự khác biệt nhỏ trong thời gian nếu đồng hồ không được đồng bộ hóa, điều này dường như không phải là vấn đề ở đây.

2

SYSDATE trả về ngày giờ hệ thống, của hệ thống mà trên đó các cơ sở dữ liệu cư trú

CURRENT_TIMESTAMP trả về ngày hiện tại và thời gian theo múi giờ phiên, trong một giá trị của kiểu dữ liệu dấu thời gian vỚI TIME ZONE

thực hiện comman này

ALTER SESSION SET TIME_ZONE = '+3:0'; 

và nó sẽ cung cấp cho bạn kết quả tương tự.

+0

+4: 30 có nghĩa là Giờ mùa hè của Iran. Có Iran và bây giờ là mùa hè! Tại sao tôi lại thay đổi múi giờ của mình ?! –

+0

vì SYSDATE trả về ngày hệ thống, của hệ thống mà trên đó cơ sở dữ liệu cư trú. Loại trả về là TIMESTAMP VỚI TIME ZONE và CURRENT_TIMESTAMP trả về ngày và giờ hiện tại trong múi giờ phiên, trong một giá trị của datatype TIMESTAMP VỚI TIME ZONE – Harshit

10

SYSDATE, SYSTIMESTAMP trả về ngày và dấu thời gian của cơ sở dữ liệu, trong khi current_date, current_timestamp trả về ngày và dấu thời gian của vị trí từ nơi bạn làm việc.

Ví dụ: làm việc ở Ấn Độ, tôi truy cập cơ sở dữ liệu ở Paris. tại 16:00 IST:

select sysdate,systimestamp from dual;

này trả về cho tôi những ngày tháng và Thời gian của Paris:

KẾT QUẢ

12-MAY-14 12-MAY-14 12.30.03.283502000 PM +02:00 

select current_date,current_timestamp from dual;

này trả tôi ngày và Thời gian của Ấn Độ:

KẾT QUẢ

12-MAY-14 12-MAY-14 04.00.03.283520000 PM ASIA/CALCUTTA 

Xin lưu ý sự khác biệt 3:30 thời gian.

0
  • SYSDATE cung cấp ngày và giờ của máy chủ.
  • CURRENT_DATE cung cấp ngày và giờ của khách hàng. (Nghĩa là, hệ thống của bạn)
  • CURRENT_TIMESTAMP cung cấp dữ liệu và dấu thời gian của một clinet.
-2
  1. SYSDATE, systimestamp trở datetime của máy chủ nơi cơ sở dữ liệu được cài đặt. SYSDATE - chỉ trả về ngày, tức là "yyyy-mm-dd". systimestamp trả về ngày theo giờ và múi giờ, tức là "yyyy-mm-dd hh: mm: giây: ms múi giờ"
  2. now() trả về datetime tại thời gian thực hiện câu lệnh, nghĩa là "yyyy-mm-dd hh: mm: ss "
  3. CURRENT_DATE -" yyyy-mm-dd ", CURRENT_TIME -" hh: mm: ss ", CURRENT_TIMESTAMP -" yyyy-mm-dd hh: mm: múi giờ ss ". Chúng có liên quan đến thời gian chèn bản ghi.
0

Lưu ý: SYSDATE - ngày chỉ trả về, tức là "yyyy-mm-dd" không chính xác. SYSDATE trả về ngày hệ thống của máy chủ cơ sở dữ liệu bao gồm giờ, phút và giây. Ví dụ:

SELECT SYSDATE FROM DUAL; sẽ trả về kết quả tương tự như sau: 12/15/2017 12:42:39 PM

+1

Vui lòng định dạng mã của bạn. – RAS

Các vấn đề liên quan