java和数据库中日期类型的常见用法
(1)java中日期类型:Date、Timestamp
(2)数据库中:Date、Timestamp
(3)字符串和Date之间的格式化转换:
SimpleDateFormat类方法:
format():把String格式化为Date;
parse():把String格式化为Date;
如果需要把Date格式化,最后仍然要转换成Date类型,方法:
先用format,再用parse,最终返回Date
(4)java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//java.sql.Timestamp类
该Timestamp类型参数可以存放到Date类型参数的方法中(Timestamp是java.util.Date的子类)
(5)数据库:
MySQL使用的日期格式(摘自mysql必知必会):无论你什么时候指定一个日期,不管是插入或更新表值还是用WHERE子句进行过滤,日期必须为格式yyyy-MM-dd。虽然其他的日期格式可能也行,但这是首选的日期格式,因为它排除了多义性。时间类型常用Date和timestamp
由于时间类型的转换,数据库中存放date类型,实体类使用String存储,操作起来更方便
(6)Servlet中sql语句保存Date类型,拼sql时,传入参数为原始的Date类型,可能会出错,格式化后或者转换成java.sql.Timestamp类型则正确
(7)数据库中时间增加,还有其他函数,如:
根据购车时间和排量查询所属车型的id:
SELECT * FROM cars_info
WHERE '2008-10-01 00:00:00'>productiondatess AND '2008-10-01 00:00:00'
AND enginemodel='N52B30' 其中时间去掉" 00:00:00"也可以查询
(8)从数据库中读取时间数据出来
java.util.Date date;
Timestamp timestamp = resultSet.getTimestamp(i);
if (timestamp != null)
date = new java.util.Date(timestamp.getTime()));
==========
Java与数据库对应的日期类型 - CSDN博客
http://blog.csdn.net/qq_23052951/article/details/51627371
..........|__java.sql.Date /java.sql.Timestamp /java.sql.Time
【父类】java.util.Date日期格式为:年月日时分秒
【子类】java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据]
【子类】java.sql.Time日期格式为:时分秒
【子类】java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)
针对不同的数据库选用不同的日期类型
·Oracle的Date类型,只需要年月日,选择使用java.sql.Date类型
·MS Sqlserver和Mysql数据库的DateTime类型,需要年月日时分秒,选择java.sql.Timestamp类型
------------------------------------------
四种对象内部均使用系统时间作为标准数据
·系统时间:自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数,即格林尼治标准时间(GMT)
·本地时间:根据时区不同打印出来的时间[当时区为GMT+0时,系统时间与本地时间相同]
我们使用的是以本地时间为参考标准的
------------------------------------------
生成日期对象
方法一:
除了父类,三个子类均可通过给其发送valueOf()消息,生成所需格式的对象。
java.sql.Date sqlDate = java.sql.Date.valueOf("2010-08-20");
java.sql.Time time = java.sql.Time.valueOf("13:44:53");
java.sql.Timestamp time = java.sql.Timestamp.valueOf("2010-08-20 14:06:27.186");
方法二:
·java.util.Date——>java.sql.Date
new java.sql.Date(new java.util.Date().getTime());
new java.util.Date(new java.sql.Date().getTime());//此处IDE报错
·java.util.Date——>java.sql.Timestamp
new java.sql.Timestamp(new java.util.Date().getTime());//此处IDE报错
·java.util.Date——>java.sql.Time
new java.sql.Time(new java.util.Date().getTime());
·Timestamp timestamp = new Timestamp(System.currentTimeMillis());
------------------------------------------
我们可以使用DateFormat处理字符串来定义时间日期的格式
注:String都是先转换为java.util.Date,然后再转换成所需的格式
Calendar
Calendar calendar=Calendar.getInstance();
//获得当前时间,声明时间变量
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
month = month+1; //[0,11]
int date = calendar.get(Calendar.DATE);
String today = ""+year+"-"+month+"-"+date+"";
..................................
String to Date[java.sql.Date]
String to Time[java.sql.Timestamp]
..................................
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
//dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//设定格式
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型
// java.sql.Timestamp dateTime = new java.sql.Timestamp
(timeDate.getTime());//Timestamp类型
public class DateTest {
public static void main(String[] args) throws ParseException{
try{
String dateString = "2010-08-20 12:00:00.125";
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",Locale.ENGLISH);//设定格式
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型
System.out.println(dateTime);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
java和数据库中日期类型的常见用法的更多相关文章
- 解决mysql 数据库中日期类型00:00:00 的问题 设置xml数据类型:java.util.Date
解决方法是 设置xml里面字段的类型为:java.util.Date.加红部分. 1. beanl里面private Date ulLoginDate; 2.hibernate的xml里面是 < ...
- Node.js怎么处理数据库中日期类型
问题描述:在数据库里存储时间的时候明明显示的是类如2016-12-22的形式,读取出来后却变成了大概是这样的:Fri May 17 2016 14:12:33 GMT+0800 (中国标准时间) 处理 ...
- Java中日期类型和mysql中日期类型进行整合
1. java与mysql中日期.时间类型总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 mysql(版本:5.1.50)的时间日期类型如下: da ...
- 时间、金钱在java、数据库中的变量类型之总结
在编写程序时,总是有些变量的类型搞不很明白,现将目前涉及到的变量总结一下: 1.“时间”类型 (1).在数据库中的变量类型是:DateTime 比如: operateTime DATETIME,//数 ...
- 数据库中字段类型对应的C#中的数据类型
数据库中字段类型对应C#中的数据类型: 数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] ...
- 数据库中字段类型对应的C#中的数据类型(转载)
数据库中字段类型对应C#中的数据类型: 数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] ...
- 【网络收集】数据库中字段类型对应C#中的数据类型
数据库中字段类型对应C#中的数据类型: 数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] bit Boolean cha ...
- 数据库中字段类型对应C#中的数据类型
数据库中字段类型对应C#中的数据类型:数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] bit Boolean char ...
- SQL Server 数据库中的几个常见的临界值
本文出处:http://www.cnblogs.com/wy123/p/6709520.html 1,SQL语句或者存储过程的最大长度(SQL字符串容量)是多少? 经常有人问,我的SQL语句是拼凑出来 ...
随机推荐
- poj 2255 Tree Recovery(求后序遍历,二叉树)
版权声明:本文为博主原创文章,未经博主同意不得转载.vasttian https://blog.csdn.net/u012860063/article/details/37699219 转载请注明出处 ...
- 由Redis的hGetAll函数所引发的一次服务宕机事件
昨晚通宵生产压测,终于算是将生产服务宕机的原因定位到了,心累.这篇博客,算作一个复盘和记录吧... 先来看看Redis的缓存淘汰算法思维导图: 说明:当实际占用的内存超过Redis配置的maxmemo ...
- Linux+Shell常用命令总结
因为自己不经常使用linux的命令行工具,但是mac的终端还是经常使用的,有些命令总是要想一会或者百度一下才知道怎么用,抽时间整理了一下常用的命令,作为笔记. 常用命令 查看文件操作: ls :列出当 ...
- Practical Mathematical Handwriting
In this article, I discuss the handwriting of $\mathbb{A}, \mathcal{A}, \mathscr{A}, \mathfrak{A}$'s ...
- Data Governance
https://erwin.com/blog/data-preparation-mapping/
- 剖析height百分比和min-height百分比
height的百分比 当我们给块元素设置百分比高度时,往往没能看到效果.因为百分比的大小是相对其最近的父级元素的高的大小,也就是说,其最近的父级元素应该有一个明确的高度值才能使其百分比高度生效. &l ...
- Go 连接 mysql 数据库的简单测试.
1. import 的时候 总是很慢 容易失败 所以 优先导入几个必须要的包 go get github.com/go-sql-driver/mysql 安装完之后 会在gopath 目录下发现相关的 ...
- 蒟蒻浅谈树链剖分之一——两个dfs操作
树链剖分,顾名思义就是将树形的结构剖分成链,我们以此便于在链上操作 首先我们需要明白在树链剖分中的一些概念 重儿子:某节点所有儿子中子树最多的儿子 重链:有重儿子构成的链 dfs序:按重儿子优先遍历时 ...
- bzoj 4571: [Scoi2016]美味 (主席树)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4571 题面; 4571: [Scoi2016]美味 Time Limit: 30 Sec ...
- Stanford Local 2016 E "Election of Evil"(搜索(正解)或并查集(划掉))
传送门 题意: 给出集合U,V,集合U有n个元素,集合V有m个元素: 有 m 个操作,mi : s1 s2 有一条s1指向s2的边(s1,s2可能属于第三个集合,暂且称之为K集合): 指向边具有传递性 ...