2012-04-25 89 views
9

Tôi chỉ muốn định dạng ngày hiện tại thành yyyymmdd trong DB2.Định dạng ngày tháng DB2

Tôi thấy các định dạng ngày có sẵn, nhưng làm cách nào tôi có thể sử dụng chúng?

http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.intro%2Fsrc%2Ftpc%2Fdb2z_datetimetimestamp.htm

SELECT CURDATE() FROM SYSIBM.SYSDUMMY1; 

Tôi không thấy bất kỳ cách đơn giản để sử dụng các định dạng được liệt kê ở trên.

Bất kỳ đề xuất nào?

Trả lời

21
SELECT VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYYMMDD') 
FROM SYSIBM.SYSDUMMY1 

Nên hoạt động trên cả hai Mainframe và Linux/Unix/Windows DB2. Info Center entry for VARCHAR_FORMAT().

+0

hoạt động. cảm ơn .. bạn cũng có thể cho biết làm thế nào tôi có thể substarct ngày kể từ ngày trên .................................. ...................... như CURDATE() - (3 ngày) – zod

+0

Có vẻ như bạn đã có nó. :) 'CURRENT TIMESTAMP - 3 DAY' – bhamby

2

Đây không phải là đơn giản, nhưng

SELECT CHAR(CURRENT DATE, ISO) FROM SYSIBM.SYSDUMMY1 

trả về ngày hiện tại trong định dạng yyyy-mm-dd. Bạn sẽ phải xâu chuỗi và nối kết quả để có được yyyymmdd.

SELECT SUBSTR(CHAR(CURRENT DATE, ISO), 1, 4) || 
    SUBSTR(CHAR(CURRENT DATE, ISO), 6, 2) || 
    SUBSTR(CHAR(CURRENT DATE, ISO), 9, 2) 
FROM SYSIBM.SYSDUMMY1 
+0

cảm ơn .. nhưng đây có phải là cách duy nhất để làm điều đó không? sau đó sử dụng định dạng là gì .... DATE_K YYYYMMDD ?? – zod

+0

Tôi không thể lấy hàm ALTDATE để làm việc trên DB2 của mình. Những gì tôi đăng trong câu trả lời của tôi hoạt động. –

1

Ngày hiện tại ở định dạng yyyy-mm-dd. Bạn có thể chuyển đổi nó sang định dạng yyyymmdd sử dụng substring chức năng:

select substr(current date,1,4)||substr(current date,6,2)||substr(currentdate,9,2) 
3

Một giải pháp nữa REPLACE (CHAR (ngày hiện tại, ISO), '-', '')

-1
select to_char(current date, 'yyyymmdd') from sysibm.sysdummy1 

kết quả: 20.160.510

+0

Truy vấn không hoạt động. Nó trả về: SQL0440N Không có tên thường quy được ủy quyền có tên "TO_CHAR" thuộc loại "CHỨC NĂNG" có đối số tương thích đã được tìm thấy. SQLSTATE = 42884 – Ian

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