求助,想在Oracle中调取当天数据或者近几天数据,sql语句出现问题,求解决办法。,现将近几天调试状况写一下,希望

dushen4565551 dushen4565551 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
从PLC中不间断的会将数据存储如Oracle表格中,现在我用VC6.0做了个程序,需要将这些数据提取出来做一些处理,目前一直调试试图获取当天数据。下面是我的调试情况,有不足之处希望高手指点。
1、获取当前时间,
CTime t;
t=CTime::GetCurrentTime();
CString daystamp;
daystamp.Format("%d-%d-%d",t.GetYear(),t.GetMonth(),t.GetDay());

2、Oracle表中的数据是每分钟一个,表中直到目前每天的数据均存在,现在将表格简化一下,假设表格名字为test,有如下类别: updatetime Date类型; test_date Number类型。
<1>① 我开始的sql语句是这样写的:
SELECT to_char(updatetime,'yyyy-mm-dd') as updatetime, sum(test_date) as test_date FROM 
test where to_char(updatetime,'yyyy-mm-dd')='"+daystamp+"' group by to_char(updatetime,'yyyy-mm-dd')
,这样到该语句就运行不下去了, 将"="更改为">"和"<"均不行。
② 之后,我将代码修改为
SELECT to_char(updatetime,'yyyy-mm-dd') as updatetime, sum(test_date) as test_date FROM test 
where to_char(updatetime,'yyyy-mm-dd')='2012-07-25' group by to_char(updatetime,'yyyy-mm-dd')

可以取得数据,将"="更改为">"和"<"均可以。
<2>① 我想可能是字符进行比较大小可能有问题,我有进行如下改变:
SELECT to_char(updatetime,'yyyy-mm-dd') as updatetime, sum(test_date) as test_date FROM test
where to_date(to_char(updatetime,'yyyy-mm-dd'),'yyyy-mm-dd')=to_date('"+daystamp+"','yyyy-mm-dd') group by to_char(updatetime,'yyyy-mm-dd')

这样也不可以,运行不下去,到这里就崩溃了。
② 但是换为具体时间之后就又可以运行,
SELECT to_char(updatetime,'yyyy-mm-dd') as updatetime, sum(test_date) as test_date FROM test 
where to_date(to_char(updatetime,'yyyy-mm-dd'),'yyyy-mm-dd')=to_date('2012-08-03','yyyy-mm-dd') group by to_char(updatetime,'yyyy-mm-dd')
该处运行正常。
这是不是意味着需要将CString类型的daystamp在进行一下转换,才可以比较大小,我在网上至今没找到有效地方法,现在将这个问题交给坛子里的各位达人,感觉什么地方有问题尽可以提出来,我会虚心接受大家的建议,谢谢!!!
...全文

相关推荐

评论 14
收藏 已收藏
分享
返回顶部
dushen4565551
基础和管理 17,377 成员 95,111 内容