对于我正在为学校编写的程序(用Java),我必须在 至 日期之间运行一条选择语句以生成时间表。这将从 SQL 中选择数据并将其放入表中。 我的问题是数据类型日期的格式为“YYYY-MM-DD”,而我使用的 JCalendar 库给出的日期为 MM/DD/YYYY,所以这会破坏它。有没有办法改变SQL格式?或者有一个简单的方法来解决这个问题?
这是我的选择查询:
'"SELECT * FROM `events`
WHERE `Date Of Event` >= '"+firstDate+"' AND `Date Of Event` <= '"+secondDate+"'"'
其中第一个日期和最后一个日期的格式不同。
非常感谢任何帮助。
最佳答案
您可以使用SimpleDateFormat类将日期解析为 Date对象并使用另一个 SimpleDateFormat 对象将其解析为所需的格式。
以下是如何执行此操作的示例:
String sqlDate = "1992-02-16";
SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdfInput.parse(sqlDate);
SimpleDateFormat sdfResult = new SimpleDateFormat("MM-dd-yyyy");
String result = sdfResult.format(date);
数据库以yyyy-MM-dd
格式存储它的原因是为了允许排序,而您的JCalendar
使用MM-dd-yyyy
格式,因为它是显示日期的标准美国方式。
我还强烈建议您使用PreparedStatement并向其中添加参数而不是连接。
关于mysql - 转换日期格式以运行 select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22438627/