怎么查询在某个特定时间内的数据?

JasonYao 2010-03-23 03:16:17
数据表里有一个month字段,类型是datetime,里面存贮的时间格式为 0000-00-00 我现在要查询要某个月份里面的所有数据
我怎么做啊?
我下面写的不对啊 前台传过来的数据 转换成Date类型后是GMT格式的 比不了啊?我该怎么做?
public PagerModel getSal(int firstResult, int maxResults, Date startdate,Date enddate) {

String hql = "select count(*) from Salary where month between" + " " + startdate + " " + "and" + " " + enddate;
int total = ((Long)sessionFactory.getCurrentSession().createQuery(hql).uniqueResult()).intValue();
List datas = sessionFactory.getCurrentSession().createQuery("select s from Salary as s where month between" + " " + startdate + " " + "and" + " " + enddate)
.setFirstResult(firstResult)
.setMaxResults(maxResults).list();
PagerModel pm = new PagerModel();
pm.setTotal(total);
pm.setDatas(datas);
return pm;
}
...全文
177 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chosen0ne 2010-03-23
  • 打赏
  • 举报
回复
http://blog.csdn.net/chosen0ne/archive/2010/01/06/5139930.aspx
楼主看下,可不可以帮到你
JasonYao 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wawamao 的回复:]
引用 11 楼 javalover_yao 的回复:
为什么我这么用后:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse("2010-3-1");
出来的日期格式还是这种:
Mon Mar 01 00:00:00 CST 2010


你用 convert(varchar(……
[/Quote]
这个方法不能用啊 痛苦啊
wawamao 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 javalover_yao 的回复:]
为什么我这么用后:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse("2010-3-1");
出来的日期格式还是这种:
Mon Mar 01 00:00:00 CST 2010
[/Quote]

你用 convert(varchar(10),startdate,120 ) 把数据库的data类型转为String
用String比较吧
JasonYao 2010-03-23
  • 打赏
  • 举报
回复
为什么我这么用后:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse("2010-3-1");
出来的日期格式还是这种:
Mon Mar 01 00:00:00 CST 2010
wawamao 2010-03-23
  • 打赏
  • 举报
回复
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
string startdateStr =sdf.format(startdate);

这个东西不能小看
Date-->String 你想要的格式
String-->Date 你想要的格式
你要什么类型的随便转化
lvzhu18 2010-03-23
  • 打赏
  • 举报
回复
1.用SimpleDateFormat将前台数据转成字符串;
2.用to_char将数据库中的数据转成字符串,比较。
wawamao 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 javalover_yao 的回复:]
引用 5 楼 wawamao 的回复:
引用 3 楼 wawamao 的回复:
SQL code

select count(*) from Salary where month between to_date("+startdate +",'YYYY-MM-DD') and to_date("+startdate +",'YYYY-MM-DD')


或者先
SimpleDate……
[/Quote]
用大于小于号就可行了吧 我这里没有mysql 要不给你运行下 呵呵
JasonYao 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wawamao 的回复:]
引用 3 楼 wawamao 的回复:
SQL code

select count(*) from Salary where month between to_date("+startdate +",'YYYY-MM-DD') and to_date("+startdate +",'YYYY-MM-DD')


或者先
SimpleDateFormat sdf = new Simp……
[/Quote]


这样不是变成String类型的了吗 我怎么还能和Date类型的进行比呢
wawamao 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 javalover_yao 的回复:]
引用 3 楼 wawamao 的回复:
SQL code

select count(*) from Salary where month between to_date("+startdate +",'YYYY-MM-DD') and to_date("+startdate +",'YYYY-MM-DD')


MySQL有to_date这个用法吗?
[/Quote]
oracle有 MySQL的日期函数不清楚,你查下。
wawamao 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wawamao 的回复:]
SQL code

select count(*) from Salary where month between to_date("+startdate +",'YYYY-MM-DD') and to_date("+startdate +",'YYYY-MM-DD')
[/Quote]

或者先
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
string startdateStr =sdf.format(startdate);
以后想这么操作都由你啊
JasonYao 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wawamao 的回复:]
SQL code

select count(*) from Salary where month between to_date("+startdate +",'YYYY-MM-DD') and to_date("+startdate +",'YYYY-MM-DD')
[/Quote]

MySQL有to_date这个用法吗?
wawamao 2010-03-23
  • 打赏
  • 举报
回复

select count(*) from Salary where month between to_date("+startdate +",'YYYY-MM-DD') and to_date("+startdate +",'YYYY-MM-DD')
JasonYao 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xyz20003 的回复:]
String hql = "select s from Salary s where month between ? and ?";

session.createQuery(hql).setParameter(0, startdate).setParameter(1, enddate).list();
[/Quote]


现在month里的数据和传进来的根本没法比啊 month里的格式是0000-00-00的 而传进来的Date类型是
Mon Mar 01 00:00:00 CST 2010 这种样子的 怎么办
临远 2010-03-23
  • 打赏
  • 举报
回复
String hql = "select s from Salary s where month between ? and ?";

session.createQuery(hql).setParameter(0, startdate).setParameter(1, enddate).list();

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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