Java 处理日期时得到错误的结果
当我们将日期从2013年12月1日定为2014年1月31日时,它只会返回截至2013年12月31日的记录 另一个问题是,当我们获取2014年1月1日至2014年12月31日的日期时,它也会将2013年所有日期的记录返回给我 请帮我解决这个问题 多谢各位 “我的日期”列的数据类型为文本Java 处理日期时得到错误的结果,java,sql,date,Java,Sql,Date,当我们将日期从2013年12月1日定为2014年1月31日时,它只会返回截至2013年12月31日的记录 另一个问题是,当我们获取2014年1月1日至2014年12月31日的日期时,它也会将2013年所有日期的记录返回给我 请帮我解决这个问题 多谢各位 “我的日期”列的数据类型为文本 请提供正确的查询以查找两个字符串输入日期之间的日期记录。您的日期列是日期时间而不是日期 要比较这些值,将范围中的日期转换为datetime,即日期的stsrt处的零百小时。这就是为什么你看不到最后一天的争吵 若要修
请提供正确的查询以查找两个字符串输入日期之间的日期记录。您的日期列是日期时间而不是日期 要比较这些值,将范围中的日期转换为datetime,即日期的stsrt处的零百小时。这就是为什么你看不到最后一天的争吵
若要修复,请在结束日期前添加一天,并测试小于而不是中间值,其中包括范围的结束-即小于或等于。开始时使用大于或等于。使用Ms Access数据库时,日期列的数据类型为文本。查看代码,您希望搜索两个日期之间的记录。这样做:
- 打开数据库
- 在设计视图中打开表
- 将日期列的数据类型更改为日期/时间
String date1 = jTextField.getText();
String date2 = jTextField2.getText();
// using CDate...
pre=conn.prepareStatement("select * from Table where Date "
+ "between CDate(?) and CDate(?) order by Date");
pre.setString(1, date1); // bind param 1
pre.setString(2, date2); // bind param 2
ResultSet rs=pre.executeQuery();
现在您可以将此日期存储到数据库中
现在您的查询可以正常工作。my Date列将文本作为数据类型,那么什么是
CDate
函数?@Bohemian(a)您第一行的意思是“Date”而不是“dare”?(b) 与其减去1秒,不如测试“小于”新一天的时刻。根据数据库的不同,日期时间的存储时间可能只有几分之一秒,因此可能存在介于“23:59:59”和“00:00:00”之间的值。什么是CDate
函数?你们的餐桌声明是什么?让我们看看一些示例数据。CDate将字符串日期转换为日期格式,让我们看看它的主体,您的数据库是什么?我使用的是MS AccessDB@MessyProgrammer你的问题需要改进。您是否使用JDBC驱动程序连接到MS Access?谁的司机?您能否提供一个链接,以访问用于存储日期值的数据类型的文档?对于Cdate函数。如果以文本类型存储值,为什么要调用CDATE来创建日期值?@Jugadu-I已将日期列的数据类型更改为日期/时间,效果良好。非常感谢。
SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
String date=format.format(yourDate);