Oracle数据源,其中一个表名为HSDATA,定义如下:INDEXID,INTEGER类型;
TIMEPOINT,DATE类型,查询显示如2010-2-16 16:00:00;
DATVAL,NUMBER(15,5)。前两个是索引(id和时间)。我希望运行一个SQL语句,可以删除掉某一天中某一个小时的数据,如删除掉2010-2-16 16:00:00到2010-2-16 17:00:00这一个小时的数据,包括前者的时间点,不包括后者的时间点。请问这个完整的SQL语句应该怎样写呢?Oracle DATE类型的时间比较语句是否和其他的数据库有区别呢?事实上我是在VC++6.0平台下利用ODBC操作数据库。这里应用的是CDatabase类下的ExecuteSQL函数。
即类似于:
CDatabase m_db;
m_db.Open(NULL);
CString SQLsen = "........";
m_db.ExecuteSQL(SQLsen);
m_db.Close();希望大家帮帮忙,告诉我应该怎样写这个SQL语句,最好连C++代码也告知(如上),万分感激!!!!
TIMEPOINT,DATE类型,查询显示如2010-2-16 16:00:00;
DATVAL,NUMBER(15,5)。前两个是索引(id和时间)。我希望运行一个SQL语句,可以删除掉某一天中某一个小时的数据,如删除掉2010-2-16 16:00:00到2010-2-16 17:00:00这一个小时的数据,包括前者的时间点,不包括后者的时间点。请问这个完整的SQL语句应该怎样写呢?Oracle DATE类型的时间比较语句是否和其他的数据库有区别呢?事实上我是在VC++6.0平台下利用ODBC操作数据库。这里应用的是CDatabase类下的ExecuteSQL函数。
即类似于:
CDatabase m_db;
m_db.Open(NULL);
CString SQLsen = "........";
m_db.ExecuteSQL(SQLsen);
m_db.Close();希望大家帮帮忙,告诉我应该怎样写这个SQL语句,最好连C++代码也告知(如上),万分感激!!!!
FROM HSDATAT
WHERE TIMEPOINT BETWEEN
TO_DATE('2010-2-16 16:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
TO_DATE('2010-2-16 17:00:00', 'yyyy-mm-dd hh24:mi:ss')
第一种包含'2010-2-16 17:00:00'
下面的应该差不多
delete FROM HSDATA T
WHERE TIMEPOINT >=
TO_DATE('2010-2-16 16:00:00', 'yyyy-mm-dd hh24:mi:ss')
AND
TIMEPOINT <
TO_DATE('2010-2-16 17:00:00', 'yyyy-mm-dd hh24:mi:ss')
输出一下,将sql在数据库中执行一下。如果正常执行,你就成功了。