[英]Converting input date string to SQL date type
我一整天都在寻找这个答案,但我一无所获。
我有一个格式如下的字符串:
日/月/年
我想将此输入到 SQL 数据库中
数据库字段(日期类型)将格式显示为 yyyy-mm-dd。
目前我有以下代码:
String inputDate = dateBookingEntry.getText();
LocalDate interDate = LocalDate.now();
interDate.parse(inputDate,DateTimeFormatter.ofPattern("dd/MM/yyyy"));
java.sql.Date finalDate = java.sql.Date.valueOf(interDate);
当我输入日期 12/12/2020 作为字符串时,我收到错误消息:
java.sql.SQLSyntaxErrorException:您的 SQL 语法有错误; 检查与您的 MySQL 服务器版本相对应的手册,了解在“2020-01-29”附近使用的正确语法
我不明白我做错了什么,或者如何解决它。 我知道它显示的是当前日期而不是输入的日期,但即使这是问题,为什么它会显示 SQL 语法错误?
我应该在这里更改什么才能使其正常工作?
编辑:
此表的 SQL 插入代码如下所示:
st.executeUpdate("INSERT INTO `fitnessClasses`(`session`, `date`, `price`, `trainer`, `level`, `type`) VALUES ('"+session+"', '"+sqlDate+"', '"+price+"', '"+trainer+"', '"+level+"', '"+classType+"')");
上面提到的带有错误的完整 SQL 代码如下所示:
ResultSet result = st.executeQuery("SELECT * FROM `fitnessClasses` WHERE `session` = '"+session+"' AND `date` '"+finalDate+"' AND `type` = '"+classType+"' AND `level` = '"+level+"'");
编辑2:
好的,我现在意识到我缺少一个 =。
现在 SQL SELECT 工作但它搜索今天的日期而不是输入的日期
我认为您想要解析的类级别,例如
LocalDate interDate = LocalDate.parse(inputDate blah blah)
当前,您将 interDate 设置为 now(),这是当前日期,这就是您以今天的日期而不是输入的日期结束的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.