MySQL数据库只保存年月_mysql下,保存时间时具体时间丢失,只保存了日期的问题...

将日志信息记入数据库时增加了一个时间字段,发现存入数据库时只保留了日期,而没有时分秒信息。

我这边环境是(SRPINGMVC+Mybatis,mysql版本5.6.28以上),java层使用类型为java.util.Date,数据字段类型为date

参考了一些网上的说法,基本描述是说:

date:只有日期,没有时间,2016-09-21;

time:只有时间,没有日期,23:42:31;

datetime:日期时间都有,2016-09-21 23:42:31 。

timestamp:可以在进行Insert或者update的时候自动的为你插入时间,时间格式:2016-09-21 23:42:31

(参见:http://blog.csdn.net/Fasure_Smile/article/details/52619686)

应对方案基本如下:

一、改用java.sql.Timestamp

二、传日期形式的字符串,在存储过程接收到后在存储过程中使用to_date处理,对于输出的使用to_char处理

三、传TO_DATE字符串进存储过程

(参见:http://blog.csdn.net/lifuxiangcaohui/article/details/11529547)

我这边实测,实际上只需要mysql使用datetime类型即可,java层可以直接使用java.util.Date类型。即实际上原因是MySQL的date类型只足够保存日期,将字段拓展为datetime即可。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解决这个问题。 首先,你需要连接到 MySQL 数据库。这可以通过使用 Java 中的 JDBC API 来完成。以下是一个简单的连接到 MySQL 数据库的示例代码: ```java import java.sql.*; public class MySQLConnection { public static void main(String[] args) { String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase"; String username = "myusername"; String password = "mypassword"; try (Connection conn = DriverManager.getConnection(jdbcUrl, username, password)) { System.out.println("Connected to database!"); } catch (SQLException e) { System.err.println("Failed to connect to database"); e.printStackTrace(); } } } ``` 在这个示例中,你需要将 `jdbcUrl`、`username` 和 `password` 替换为你自己的数据库连接信息。 一旦你连接成功,你可以使用 `Statement` 或 `PreparedStatement` 对象执行 SQL 查询并将结果存储在数组列表对象中。下面是一个简单的示例代码: ```java import java.sql.*; import java.util.ArrayList; import java.util.List; public class MySQLQuery { public static void main(String[] args) { String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase"; String username = "myusername"; String password = "mypassword"; try (Connection conn = DriverManager.getConnection(jdbcUrl, username, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM mytable")) { List<String> data = new ArrayList<>(); while (rs.next()) { String value = rs.getString("column_name"); data.add(value); } System.out.println("Data retrieved from database:"); System.out.println(data); } catch (SQLException e) { System.err.println("Failed to execute query"); e.printStackTrace(); } } } ``` 在这个示例中,你需要将 `jdbcUrl`、`username` 和 `password` 替换为你自己的数据库连接信息,将 `mytable` 替换为你想要从中检索数据的表名,将 `column_name` 替换为你想要检索的列名。 当你运行这个示例代码,它将从数据库中检索数据并将其存储在一个字符串列表中。你可以按照你的需要修改代码,以适应你的具体情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值