时间格式的比较问题,会者不难,大家来帮忙啊
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




