java - java-应该如何将日期值传递给 MySQL?
问题描述
我有一个在数据类型StartDate
的 MySQL 中调用的列字段Date
。在我的应用程序中,我定义了一种在我的页面上显示当前日期的方法,如下所示。
String today = CoreUtil.parseDate(new Date());
这基本上以YYYY-MM-DD
格式返回日期并将其存储在一个很好的字符串中。
现在,我想将此值传递给一个将值插入到 column 的函数StartDate
。
我声明的函数如下:
public void insert_update(String nodeid,String ts,Date startdt,Date enddt,int enable)
我正在调用此函数并将值传递today
给它,如下所示:
fileFacade.insert_update(...,....,today,....,...);
现在我不是这个日期的专家,并且看到它不允许我传递我将它定义为日期参数的值,我应该如何处理这个问题?
我应该将它转换回日期格式并传递值还是 MySQL 允许将字符串值插入到日期数据类型列中?
我只想将值以YYYY-MM-DD
格式存储在我的表中。
编辑:
我的功能:
public void insert_update(String nodeid,String ts,Date startdt,Date enddt,int enable){
try {
// UrlLink attr = em.find(UrlLink.class,n);
String sql="UPDATE urllink SET STARTDT="+startdt+",ENDDT="+enddt+",ENABLE="+enable+"WHERE URL='f0="+nodeid+"&ts="+ts + "'";
em.createNativeQuery(sql).executeUpdate();
}catch (Exception e) {
e.printStackTrace();
}
}
解决方案
您不应尝试将其转换String
为 aDate
以便将其插入表中。您可以date
按原样使用 type preparedStatement
,例如:
Date date = new Date();
PreparedStatement pStmt = connection.prepareStatement("<query>");
pStmt.setDate(1, date);
这是javadoc。
更新
如果此处的目的是以指定格式显示日期,那么我强烈建议DATE
在查询时将日期存储为 MySQL 格式。我们如何存储日期的决定不应取决于它需要如何在前端显示,因为我们可能需要在多个用户界面上显示不同的日期格式。
推荐阅读
- python - 如何在 TensorFlow 中对自定义损失函数中的张量进行归一化?
- java - 使用 setTextValidation 在 EditText 上的正则表达式模式无法正常工作
- google-apps-script - 通过 App Script 在 Google Sheets 中设置原始值
- angular - Nativescript-angular post request pipe(map()) 不返回任何内容,不抛出错误
- javascript - 表单提交成功后如何在不重新加载页面的情况下弹出消息?
- python - k个连续字符串中最长的
- java - 迁移到 Java9+ 时,我应该在现有的 Maven 多模块 Web 项目中使用 Java 模块化吗?
- laravel - 在 Laravel 中访问不同模型的属性
- html - 如何在不影响其内容的情况下调整元素的宽度
- javascript - 如何在 node.js 中循环请求