1

我在 MySQL 服务器中有一个名为 Caller_List 的表。在此表中,我有一个名为 call_date 的日期列,其数据类型为日期。我创建了一个网页,其中有一个用于 from_day 的 SELECT 框(存储所有 1 到 31 天),一个用于月份的 SELECT 框(存储从 1 月到 12 月的所有月份名称),一个用于年份的 SELECT 框(存储从 2000 年到 2012 年的所有年份。就像我还有一个用于 to_day、to_month 和 to_year 的 SELECT 框。

问题是当我使用request.getParameter()方法从 java servlet 获取这些日期、月份和年份时,它被作为字符串数据类型获取并存储在名为 from_date 和 to_date 的变量中。我连接 from_day、from_month 和 from_year 并存储在名为 from_date 的变量中。我还将 to_day、to_month 和 to_year 连接起来并存储在 to_date 中。因为 MySQL 理解这种格式,所以我以年-月-日的格式连接它们。

然后我通过以下查询来检索这两个 from_date 和两个日期之间的数据:

select caller_name,call_date 
from Caller_List 
where call_date>='"+from_date+"' and call_date<='"+to_date+"'

我也尝试了以下查询,但徒劳无功:

select caller_name,call_date 
from Caller_List 
where call_date between '"+from_date+"' and '"+to_date+"'

我还知道在执行查询之前我需要将 from_date 和 to_date 转换为日期格式。但是我是java新手,不知道怎么做。我也想要格式年-月-日的日期。我确实想用日期显示时间,请帮帮我!

4

1 回答 1

0

如果您只想知道如何在 java 中将字符串解析为日期,您可以简单地使用SimpleDateFormat该类。

final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
    final Date fromDate = dateFormat.parse(from_date);
} catch (ParseException e) {
    // ...
}

假设您的 from_date 字符串看起来像2012-09-16.

如果你想显示一个带时间的日期。您也可以使用SimpleDateFormat.

final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
    final String displayDate = dateFormat.format(new Date());
} catch (ParseException e) {
    // ...
}

displayDate应该看起来2012-09-16 20:13:25像。

还有一件事,您可以比较 MySQL 中的字符串类型和日期类型。只需确保您的日期字符串具有“yyyy-mm-dd hh:mm:ss”模式。当然,你应该使用preparedStatement。

于 2012-09-15T23:42:22.930 回答