2015-08-28 11 views
9

Tôi muốn thêm 10 giây vào current_timestamp trong tập lệnh PL/SQL của mình. Tôi đã thử mã dưới đây nhưng đầu ra của nó không có định dạng dấu thời gian.Cách thêm 10 giây vào current_timestamp SQL (Oracle)

SELECT CURRENT_TIMESTAMP+1/24/60/6 FROM dual; 

Output:

CURRENT_TIMESTAMP+1/24/60/6 

--------------------------- 
28-AUG-15 

Có chức năng tương tự như TIMESTAMPADD trong máy chủ Mysql?

+0

Bạn nên làm việc, vì vậy công cụ của bạn có thể chỉ cắt ngắn phần thời gian của kết quả. Tôi sẽ viết logic như '(10/(24 * 60 * 60))'. Tôi nghĩ điều đó làm cho ý định rõ ràng hơn. –

Trả lời

19

Trong Oracle, nếu bạn muốn có một timestamp như kết quả, chứ không phải là một date (một date luôn bao gồm thời gian để thứ hai, mặc dù, vì vậy bạn có thể chỉ muốn một date), bạn muốn thêm một interval đến số timestamp. Có nhiều cách khác nhau để xây dựng một interval-- bạn có thể sử dụng một khoảng thời gian đen

select current_timestamp + interval '10' second 
    from dual 

hoặc bạn có thể sử dụng chức năng numtodsinterval

select current_timestamp + numToDSInterval(10, 'second') 
    from dual 
+0

Cảm ơn bạn Justin. Nó đã làm việc. –

0

Nó có thể đạt được bằng cách sử dụng TO_CHAR

Select TO_CHAR(current_timestamp,'DD-MM-YY hh24:mi:SS') AS TIMESTAMP, 
TO_CHAR(current_timestamp+10/24/60/60,'DD-MM-YY hh24:mi:SS') AS TIMESTAMP_PLUS_10SEC 
from dual; 

OUTPUT:

TIMESTAMP   TIMESTAMP_PLUS_10SEC 
31-08-15 05:17:19  31-08-15 05:17:29 
Các vấn đề liên quan