遇到的问题
神通数据库表中有一个DATE型的字段day,新建条目的时候赋值为CURRENT_DATE,业务需要当天数据,查询时使用WHERE "DAY" = CURRENT_DATE
得不到想要的结果
表结构如下:
新建条目语句
INSERT INTO CENTER.COUNTER("DAY", M_TYPE, CNT) VALUES(CURRENT_DATE, '00', 1);
解决办法
使用神通数据库的时间函数判断,神通数据库提供68个时间函数,可以使用其中DATEDIFF
函数判断是否满足当天条件。
DATEDIFF
计算两个日期之间的间隔。
使用语法:
参数:
field:默认为4,表示时间差结果用哪个域的单位表示。单位的表示方法有两种,一种是用整数 0 到 9 表示,分别对应微秒到年不等。另外一种是用字符串表示单位名称。对应表格如下:
date_expression1:DATE 类型的时间值
date_expression2:DATE 类型的时间值
返回值:返回 LONG 类型,亦即 INT8 类型表示的差值。
因此我们可以使用这个函数判断DAY与当前日期时间是否超过一天
SELECT * FROM CENTER.COUNTER WHERE DATEDIFF("DAY", CURRENT_DATE) = 0;