MySQL数据库Date型数据插入问题
MySQL数据库中,Date型数据插入问题,总是提示如下错误:
“java.util.Date cannot be cast to java.sql.Date”
解决办法:
1、首先,获取Date型数据
Date entry_date; //这是java.util.Date类型的
String entryDateString = "2013-01-01";
try{
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd");
entry_date = sDateFormat.parse(entryDateString);
}catch (ParseException e){
System.out.println("ParseException:"+e.getMessage());
}
2、将Java类型的Date数据转换为SQL类型的数据(java.util.Date --> java.sql.Date)
prepareStatement.setDate(new java.sql.Date(entry_date.getTime()));
prepareStatement.executeUpdate();
3、注意:不同类型数据包含的时间信息不同
- java.util.Date 型数据包含 年月日和时分秒等信息;
- java.sql.Timestamp 型数据包含 年月日和时分秒,以及毫秒等信息;
- java.sql.Date 型数据只包含年月日信息;
- java.sql.Time 型数据只包含时分秒信息;
所以,上述不同类型数据间的转换,最好使用getTime()获取从1970年1月1日,00:00:00开始的毫秒数,然后再进行转换。否则,会出现错误。
实例如下:
java.util.Date d = new java.util.Date();
java.sql.Date d1 = new java.sql.Date(d.getTime());
java.sql.Time t1 = new java.sql.Time(d.getTime());
java.util.Date dd = new java.util.Date(d1.getTime());//+t1.getTime());
System.out.println("date d:" + d);
System.out.println("date d1: " + d1);
System.out.println("time t1: " + t1);
System.out.println("datetime dd: " + dd); java.sql.Timestamp ts = new java.sql.Timestamp(d.getTime());
System.out.println("timestamp ts:" + ts);//含有毫秒数
long lms = ts.getTime();
java.sql.Date date = new java.sql.Date(lms);
java.sql.Time time = new java.sql.Time(lms);
System.out.println("timestamp ts:" + date + " " + time); //无毫秒数
显示结果如下:
date d:Mon Aug 26 12:13:31 CST 2013
date d1: 2013-08-26
time t1: 12:13:31
datetime dd: Mon Aug 26 12:13:31 CST 2013
timestamp ts:2013-08-26 12:13:31.667
timestamp ts:2013-08-26 12:13:31
MySQL数据库Date型数据插入问题的更多相关文章
- Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题
Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...
- MySQL数据库表的数据插入、修改、删除、查询操作及实例应用
一.MySQL数据库表的数据插入.修改.删除和查询 CREATE DATABASE db0504; USE db0504; CREATE TABLE student ( sno ) NOT NULL ...
- Linux环境下MySQL数据库用SQL语句插入中文显示 “问号或者乱码 ” 问题解决!
问题: 在普通用户权限下执行 mysql -u root -p进入mysql数据库,中间步骤省略,插入数据:insert into 库名(属性)values('汉字'); 会出现如下提示: Quer ...
- 使用JDBC在MySQL数据库中快速批量插入数据
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch ...
- mysql数据库使用insert语句插入中文数据报错
在mysql的命令行模式中,通过insert语句插入中文数据的时候报错,类似于下面这样: Incorrect string value: '\xE7\x8F' for column 'name' at ...
- python3操作MySQL数据库,一次插入多条记录的方法
这里提供一个思路,使用字符串拼接的方法,将sql语句拼接出来,然后去执行: l = ["] s = '-' print(s.join(l))
- 项目--解决MySQL数据库插入中文乱码
转载自:http://blog.csdn.net/zzh920625/article/details/51226312 情景再现] 如图,在项目中使用MySQL数据库,在做插入操作时,写入英文字符没有 ...
- MySQL数据库插入中文时出现Incorrect string value: '\xE6\x97\xB7\xE5\x85\xA8' for column 'sz_name' at row 1
今天在开发时候出现了这个问题 Incorrect string value: '\xE6\x97\xB7\xE5\x85\xA8' for column 'sz_name' at row 1 场景,往 ...
- shell脚本连接、读写、操作mysql数据库实例
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...
随机推荐
- 跟着百度学PHP[14]-PDO-优化驱动
使用方法设置预定义变量 PDO的方法/属性 PDO::beginTransaction — Initiates a transaction PDO::commit — Commits a transa ...
- PHP案例:学生信息管理系统
-- Database: test -- 表的结构 message CREATE TABLE `message` ( `id` tinyint(1) NOT NULL PRIMARY KEY AUTO ...
- hdu6000 Wash 巧妙地贪心
/** 题目:hdu6000 Wash 巧妙地贪心 链接:https://vjudge.net/contest/173364#problem/B 转自:http://blog.csdn.net/ove ...
- Linux----文件I/O
1.文件描写叙述符:每次我们打开一个文件,就会得到一个相应于该文件的较小的整数,这个整数就是这个文件的文件描写叙述符. 在shell操作中,0,1,2这三个文件描写叙述附总是打开的.一般是指向shel ...
- css3动画4
效果: 代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head&g ...
- js用计时器加载大量dom
改进前: <table><tbody></tbody></table> var tbody=document.getElementsByTagName( ...
- Java入门 第一季第六章 数组
这是我学习慕课网Java课程的笔记,原视频链接为:http://www.imooc.com/learn/85 6-1什么是数组 数组中的元素都能够通过下标来訪问.下标从 0 開始.比如,能够通过 sc ...
- 从零开始开发一个vue组件打包并发布到npm (把vue组件打包成一个可以直接引用的js文件)
自己写的组件 有的也挺好的,为了方便以后用自己再用或者给别人用,把组件打包发布到npm是最好不过了,本次打包支持 支持正常的组件调用方式,也支持Vue.use, 也可以直接引用打包好的js文件, 配合 ...
- [Hadoop]安装
1 从官网下载hadoop稳定版 http://www.apache.org/dyn/closer.cgi/hadoop/common/ 2 安装JAVA 参考如下blog http://www.cn ...
- 【ARDUINO】蓝牙(HC-05)透传
1.蓝牙连接ARDUINO 工作模式:VCC-5.5V GND-GND TXD-RX RXD-TX 工作模式下默认波特率38400 AT模式,在工作模式的基础上KEY-VCC/5.5V 设置从模式: ...