2012-04-25 181 views

回答

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

应在大型机和Linux/Unix/Windows的DB2工作。 Info Center entry for VARCHAR_FORMAT()

+0

工作。谢谢..你能否告诉我如何从上述日期减少天数.................................. ......................像CURDATE() - (3天) – zod 2012-04-25 18:49:29

+0

看起来你已经拥有它了。 :)'CURRENT TIMESTAMP - 3 DAY' – bhamby 2012-04-25 19:05:44

2

这不是直接的,但

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

返回YYYY-MM-DD格式的当前日期。你将不得不substring和连接结果得到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

谢谢..但是这是唯一的方法吗?那么格式的用途是什么...... DATE_K YYYYMMDD? – zod 2012-04-25 18:12:24

+0

我无法让ALTDATE函数在我的DB2上工作。我在答案中发布的内容。 – 2012-04-25 18:22:16

1

当前日期格式为yyyy-mm-dd格式。您可以使用substring功能将其转换成yyyymmdd格式:

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

还有一个解决方案 REPLACE(CHAR(当前日期,ISO), ' - ', '')

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

结果:20160510

+0

查询无效。它返回: SQL0440N未找到具有 兼容参数的名为“TO_CHAR”类型为“FUNCTION”的授权例程。 SQLSTATE = 42884 – Ian 2017-12-14 03:37:56