将字符串转换为日期mysql
Posted
技术标签:
【中文标题】将字符串转换为日期mysql【英文标题】:Convert String to Date mysql 【发布时间】:2014-03-08 20:41:24 【问题描述】:我需要将字符串转换为日期以允许我在 mysql 表中插入信息:
我试过了:
System.out.println("Escribe la fecha de nacimiento de socio:");
//Traduction to english: set the date of birthday //
String fechaSocio = sc.next();
Date fecha = null;
try
fecha = new SimpleDateFormat("ddMMyyyy").parse(fechaSocio);
catch (ParseException e)
// TODO Auto-generated catch block
e.printStackTrace();
但它是这样转换的:Thu Mar 21 00:00:00 CET 1996
我需要转换成这个:
01-01-1987 或 01011987
public class SocioDao
static ClaseConexion conexion = new ClaseConexion();
public void insertar(Socio misocio)
System.out.println(misocio.getDATA_NAIXEMENT());
System.out.println("..........................");
try
Statement statuo = conexion.getConnection().createStatement();
statuo.executeUpdate("insert into socis(CODI_SOCI,DNI,NOM,COGNOMS,"
+ "DATA_NAIXEMENT,ADRECA,POBLACIO,TELEFON) values ('"
+ misocio.getCODI_SOCI() + "','" + misocio.getDNI()
+ "',' " + misocio.getNOM() + "','" + misocio.getCOGNOMS()
+ "','" + misocio.getDATA_NAIXEMENT() + "','"
+ misocio.getADREÇA() + "','" + misocio.getPOBLACIO()
+ "','" + misocio.getTELEFON() + "')");
statuo.close();
conexion.desconectar();
System.out.println("Socio añadido correctamente");
catch (Exception e)
System.out.println("No se puede añadir un nuevo socio");
【问题讨论】:
您只向我们展示了解析。您还没有向我们展示您如何尝试在 MySQL 查询中设置日期。 从哪里得到Thu Mar 21 00:00:00 CET 1996
?
【参考方案1】:
您似乎正试图在 MySQL 查询中将 Date
作为 String
传递。
不要。而是在 PreparedStatement
类中使用适当的日期设置器方法。
请记住,Date
没有格式。格式仅用于显示日期。
【讨论】:
请参阅this other answer by BalusC,了解此答案所暗示的示例。【参考方案2】:如果您尝试在数据库中插入日期,请使用 mysql 函数..
例如:
INSERT INTO test (sampledate) VALUES (CURDATE());
【讨论】:
以上是关于将字符串转换为日期mysql的主要内容,如果未能解决你的问题,请参考以下文章
如何将日期字符串转换为 mysql 日期格式以使用 mysql 查询计算日期差异