DB2时间戳计算

时间:2014-11-28 06:22:54

标签: sql timestamp db2

我收到以下查询的sql错误, 是不可能写如下,..

SELECT   some columns  FROM XXXXX.XXX_XXX
WHERE LAST_UPDT_DATE<=  CURRENT TIMESTAMP     
AND LAST_UPDT_DATE>= (CURRENT_TIMESTAMP -     
'2001-01-21-12.00.00.000000')              
;                            

3 个答案:

答案 0 :(得分:0)

尝试这个未经测试的查询:

SELECT   some columns  FROM XXXXX.XXX_XXX
WHERE LAST_UPDT_DATE between CURRENT TIMESTAMP     
AND (CURRENT_TIMESTAMP -
date(to_date('2001-01-21-12.00.00','YYYY-MM-DD HH.MI.SS'))

答案 1 :(得分:0)

通常(在标准SQL中),冒号将小时与分钟和分钟分开。我似乎记得DB2在日和小时之间没有遵循标准,但是我忘记了使用了哪个标点符号。您也可以在字符串前加上TIMESTAMP,以强调/强制它为TIMESTAMP文字。

来自DB2 10.1 Knowledge Centre

  

通过将值显式地转换为具有指定精度的时间戳,可以为时间戳的字符串表示赋予不同的时间戳精度。如果字符串是常量,则替代方法是在字符串常量前面加上TIMESTAMP关键字。例如,TIMESTAMP&#39; 2007-03-28 14:50:35.123&#39;具有TIMESTAMP(3)数据类型。

答案 2 :(得分:0)

对不起所有..我的要求不需要计算(时间戳 - 时间戳)。 查询只需要为,

SELECT   some columns  FROM XXXXX.XXX_XXX
WHERE LAST_UPDT_DATE<=  CURRENT TIMESTAMP     
AND LAST_UPDT_DATE>='2001-01-21-12.00.00.000000'
;         

工作正常。