带有时间戳的DB2变量

时间:2013-12-03 20:57:49

标签: sql db2

我根本不熟悉DB2语法,所以需要一些指导,以下是我试图在DB2(版本8.2.4)代码中转换的ms sql代码

declare @d datetime, @mydate varchar(16)
set @d = GETDATE()
--create formatted datetime[yyyyMMdd-hhmmss]
set @mydate = convert(varchar,@d,112)+'-  '+convert(varchar,datepart(hh,@d))+convert(varchar,datepart(mi,@d))+convert(varchar,datepart(ss,@d))
select @mydate as MyDate

但是我绝对没有运气,我尝试使用以下语法

分配变量
DECLARE c_date Date;
SELECT CURRENT_TIMESTAMP INTO c_date FROM SYSIBM.SYSDUMMY1

没有运气..我使用另一种格式来创建变量(CREATE VARIABLE),我用Google搜索并找到了一些资源,但由于某些原因,在我的情况下,我无法做我想做的事情..希望有人可以解释一下...... 感谢

2 个答案:

答案 0 :(得分:0)

我认为您的问题是DB2 tiemstamp与MySql或Oracle时间戳非常不同

您可以使用以下systax分配时间戳

TSCOL = '2014-12-31-23:59:59.123456'  -- notice microseconds are required !!
TSCOL = '2014-12-31 23:59:59.123456'  -- for newer versions of DB2 with ISO dateformat set!!

TSCOL = TIMESTAMP(DATECOL,TIMECOL)

答案 1 :(得分:0)

您似乎正在尝试获取当前时间戳,但以某种方式格式化。由于DB2 8.2没有有用的TIMESTAMP_FORMAT函数,因此可以使用以下命令:

select 
    cast(int(current date) as char(8)) || '-' || cast(int(current time) as char(6)) as mydate 
from 
    sysibm.sysdummy1

返回:

MYDATE              
---------------
20131203-234912