CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

时间格式的比较问题,会者不难,大家来帮忙啊

楼主hony1999()2004-09-01 21:40:16 在 Java / Web 开发 提问

SQL   SERVER   数据库中字段类型为datetime   字段名为postdate(提交日期);  
  在提交文件中是这样的  
  java.util.Date   date=new   java.util.Date();    
  String   postdate=new   Timestamp(date.getTime()).toString();     //转字符行了,不转存不了啊  
  然后把加入库中,格式变成了这样:  
  2004-8-26   上午   16:56:36  
  就连下午也成了上午,不想存成varchar的,还有别的存发吗?这到没什么,因为在提取时经过格式变换没有出错。  
  但是现在想将库中时间跟某个时间段进行比较,这里用了Calendar。  
  Calendar   cal   =   Calendar.getInstance();  
  String   now   =   cal.get(Calendar.YEAR)   +   "-"   +cal.get(Calendar.MONTH)   +   "-"   +  
                        cal.get(Calendar.DATE);   //今天日期   2004-8-1     不知道为什么差一个月,本来是9月的  
  cal.add(Calendar.DATE,-15);  
                    String   dt   =   cal.get(Calendar.YEAR)   +   "-"   +cal.get(Calendar.MONTH)   +   "-"   +  
                cal.get(Calendar.DATE)   ;             //15天前日期   2004-7-16  
  这样查询   “select   top   50   *   from   message   where   (postdate   between   '"+dt+"'   and   '"+now+"')   "  
  能运行但没有结果,但库中确实有满足条件的记录。请问这条查询语句该怎么写,  
  不想要bean和类文件,只要帮忙在这个基础上修改就好(postdate一定为datetime类型)。  
     
   
   
   
   
  问题点数:40、回复次数:9Top

1 楼hony1999()回复于 2004-09-01 21:52:20 得分 0

因为库里是datetime类型,而取得的时间段是字符型,所以不知道怎么比较,可是怎样把字符型转成datetime型然后再怎么比较我不知道啊,我认为问题在这里,  
  还有怎样在存入库时就变成2004-8-23   12:23:11   前提是库中类型为datetime。Top

2 楼ikevin(菜无心)回复于 2004-09-01 22:00:55 得分 5

 
   
      直接在SQL语句中使用日期函数:  
          insert   into   TABLE(datatime)   VALUES(now())  
   
      比较的时候好象日期前需要加井号--#,如:#2004-8-23   12:23:11Top

3 楼agu(如饥似渴)回复于 2004-09-01 22:57:13 得分 20

没有用过这个么  
   
        Timestamp   nowTime=new   Timestamp(System.currentTimeMillis());  
   
        SimpleDateFormat   df   =   new   SimpleDateFormat("yyyy-MM-dd");  
        String   fromDate=df.format(nowTime);  
   
  Top

4 楼kele6326()回复于 2004-09-02 03:55:59 得分 0

ding  
  楼上的兄弟能给个小例子吗?谢  
  特别是Timestamp   nowTime=new   Timestamp(System.currentTimeMillis());  
  应该怎么用?Top

5 楼hony1999()回复于 2004-09-02 15:15:44 得分 0

to     agu   用过,但没有小时,分,秒。还有库中datetime   类型能直接与String类型比较吗?  
  请看一下我的查询语句,那样可以吗  
  “select   top   50   *   from   message   where   (postdate   between   '"+dt+"'   and   '"+now+"')   "Top

6 楼skyboy0720(曲终人散)回复于 2004-09-02 15:20:21 得分 5

SQL中插入日期,就当字符串处理不会错,  
  比如:insert   table(column)select   '2004-1-1'Top

7 楼UnknowREN(勇敢的心)回复于 2004-09-02 15:21:35 得分 5

convert(varchar(20),datetime)Top

8 楼skyboy0720(曲终人散)回复于 2004-09-02 15:21:36 得分 5

但是你插入之前,要保证格式是那样的,而不是含有”上午“这样的格式!  
  那就是编程语言中转化的问题了,转化以后,直接当字符串插入,就不会错了!Top

9 楼hony1999()回复于 2004-09-03 00:44:00 得分 0

现在问题已经解决,就是在数据库中字段类型存为   varchar,然后将日历类型都转换为  
  SimpleDateFormat("yyyy-MM-dd   HH:mm:ss"),可以比较,谢谢各位热心相助。  
  Top

相关问题

  • 时间格式问题?比较难!
  • 时间格式如2005-12-11 怎么和数据库里的datetime格式比较?
  • access中时间的比较,我的时间格式是2005-8-23 10:37:24
  • 时间比较
  • 时间比较……
  • 时间比较!
  • oracle时间格式?
  • 时间格式化
  • 时间的比较
  • 时间的比较

关键词

  • 字符
  • date
  • postdate
  • cal
  • 格式
  • calendar
  • 库
  • 日期
  • 类型
  • datetime

得分解答快速导航

  • 帖主:hony1999
  • ikevin
  • agu
  • skyboy0720
  • UnknowREN
  • skyboy0720

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo