达梦官方文档已经说得很清楚了,在此仅记录下笔记,方便以后进行查阅。
DATEADD对应的相关文档如下:
这里说明下CREATE_TIME是TIMESTAMP类型。
如下例子:
select CREATE_TIME from TEST_TABLE
运行截图如下:
现在有个需求,让CREATE_TIME添加,2秒,2分钟,2小时,2年。
对应的SQL如下:
select CREATE_TIME as T1, DATEADD(S, 2, CREATE_TIME) as T2, DATEADD(N, 2, CREATE_TIME) as T3, DATEADD(HH, 2, CREATE_TIME) as T4, DATEADD(YY, 2, CREATE_TIME) as T5 from TEST_TABLE
运行截图如下:
如果再有这样的一个需求,离现在(当前时刻)2小时外的数据是过期数据,把这些过期数据拧出来。
这里先介绍这样的一个函数,因为上面的CREATE_TIME是TIMESTAMP类型。所以这里要用NOW(),用来获取当前时间戳。
TIMESTAMPDIFF用于返回时间间隔。
如下SQL
select NOW(), CREATE_TIME, TIMESTAMPDIFF(SQL_TSI_FRAC_SECOND, CREATE_TIME, NOW()) from TEST_TABLE;
运行截图如下:
最后,将过期(2小时前)的数据挑出来,对应的SQL如下:
select NOW(), CREATE_TIME from TEST_TABLE where TIMESTAMPDIFF(SQL_TSI_FRAC_SECOND, NOW(), DATEADD(HH, 2, CREATE_TIME)) >= 0
运行结果如下: