怎么提取数据库中今天的数据?

liugangsys 2009-06-18 04:58:14
请问一下,怎么得到数据库中今天的数据?
这是我的代码,老是报错。
public static int GetTodayPostNums()
{
OracleConnection gpnconn = new OracleConnection(con);
gpnconn.Open();
int myyear = Convert.ToDateTime(DateTime.Now).Year;
int mymonth = Convert.ToDateTime(DateTime.Now).Month;
int day = Convert.ToDateTime(DateTime.Now).Day;
string gpnsql = "select count(*) from LGBBS_USERARITICLE where year(DATATIME) = '" + myyear + "' and month(DATATIME) = '" + mymonth + "' and day(DATATIME) ='" + day + "'";
OracleCommand gpncmd = new OracleCommand(gpnsql, gpnconn);
int postnums = Convert.ToInt32(gpncmd.ExecuteScalar());//Convert.ToInt32(gpncmd.ExecuteScalar());
gpnconn.Close();
return postnums;
}
请各位高手帮一个我,先谢谢了。
...全文
53 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
qldsrx 2009-06-18
  • 打赏
  • 举报
回复
要是DATATIME就是日期型,都不需要to_date转换(我怎么感觉越来越简单了)

select count(*) from LGBBS_USERARITICLE where DATATIME = trunc(sysdate)
qldsrx 2009-06-18
  • 打赏
  • 举报
回复
楼主你的SQL语句这么写,肯定没问题,都不需要外部传递任何值,让数据库自己获得当前日期即可。

select count(*) from LGBBS_USERARITICLE where to_date(DATATIME,'yyyy-mm-dd') = trunc(sysdate)
cylx00 2009-06-18
  • 打赏
  • 举报
回复
select count(*) from LGBBS_USERARITICLE where
trunc(DATATIME) between to_date('2009-06-18','yyyy-mm-dd') and to_date('2009-06-18','yyyy-mm-dd')
blackmeit 2009-06-18
  • 打赏
  • 举报
回复
sql 的语法:
select count(*) from LGBBS_USERARITICLE where DATATIME > convert(nvarchar(10),getdate()-1,121)
CPU_2 2009-06-18
  • 打赏
  • 举报
回复
string gpnsql = "select count(*) from LGBBS_USERARITICLE where year(DATATIME) = '" + myyear + "' and month(DATATIME) = '" + mymonth + "' and day(DATATIME) ='" + day + "'";
这些整形不用单引号吧?
liugangsys 2009-06-18
  • 打赏
  • 举报
回复
我先看看,能不能过,呵呵,谢谢你了。
lvxianda 2009-06-18
  • 打赏
  • 举报
回复
select * from LGBBS_USERARITICLE where DATATIME> trunc(sysdate,'dd')
junyi2003 2009-06-18
  • 打赏
  • 举报
回复
怎么看都是SQL_SERVER的语句用到Oracle上了。不报错才怪。


select * from table-name where updatetime >= to_date(to_char(sysdate,'yyyyMMdd'),'yyyyMMdd') and updatetime < to_date(to_char(sysdate+1,'yyyyMMdd'),'yyyyMMdd');


好像这个语句写得很傻哦 ^^
liugangsys 2009-06-18
  • 打赏
  • 举报
回复
LGBBS_USERARITICLE
ARITICLE
USERNAME
TITLE
CONTENT
IMAGEURL
IP
DATATIME
HITS
RECALLHITS
LASTUSER
LASTTIME
TYPE
OPLINE
UPDATETIME
lvxianda 2009-06-18
  • 打赏
  • 举报
回复
你把你数据库中的 字段列出来
liugangsys 2009-06-18
  • 打赏
  • 举报
回复
DATATIME是数据插入的时间(也就是发贴时间),是数据库表中的一列,
LGBBS_USERARITICLE 是表名。
year,month,day我是把它当函数来用的,可能Oracle不支持吧。
lvxianda 2009-06-18
  • 打赏
  • 举报
回复

select count(*) from (select * from LGBBS_USERARITICLE where mydatetime > sysdate - 1)
这样就能获取1天的数据

问下数据库结构是什么样子的?
year,month,day是3个字段嘛?
liugangsys 2009-06-18
  • 打赏
  • 举报
回复
可是我的列名是DATATIME不是DATETIME啊。
能告诉我SQL语句吗?
新手挺难的,呵呵。不过还是谢谢大家。
lvxianda 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 SQL77 的回复:]
引用 3 楼 liugangsys 的回复:
sql语句应该怎么写呢?
能详细点吗?我是个新手。


关键字要用定界标识符[DATETIME]
[/Quote]
严重错误oracle不支持[]这个东西。
xxyping 2009-06-18
  • 打赏
  • 举报
回复
你那边分别把年月日取出来比较,不是很麻烦么,直接把今天这个日期传进去和DATETIME比较不是很好
SQL77 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liugangsys 的回复:]
sql语句应该怎么写呢?
能详细点吗?我是个新手。
[/Quote]
关键字要用定界标识符[DATETIME]
liugangsys 2009-06-18
  • 打赏
  • 举报
回复
sql语句应该怎么写呢?
能详细点吗?我是个新手。
qldsrx 2009-06-18
  • 打赏
  • 举报
回复
话说你的year、month、day都是什么函数?我怎么都没见过
qldsrx 2009-06-18
  • 打赏
  • 举报
回复
Oracle的日期型不能像SQLSERVER那样传递,必须手工调用TO_DATE函数,比如
to_date('2009-06-18','yyyy-mm-dd')


或者你使用参数法,传递Oracle参数,那个带参数类型的,就不用你转换了

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧