java中数据库取出的时间类型用什么接收(数据库的日期型数据应该用什么类型接受)
大家好,今天来为大家分享java中数据库取出的时间类型用什么接收的一些知识点,和数据库的日期型数据应该用什么类型接受的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
数据库的日期型数据应该用什么类型接受
1、如果数据库中存储时间的数据类型为datetime,那就避免在后台代码(*.aspx.cs)中转化时间格式,将格式转化的任务放到界面代码(*.aspx)上。
无论获取的时间是什么格式的,在后台不要对这个时间的值进行任何操作(比如赋值等,否则系统会将时间隐式转换),而是直接在界面代码(*.aspx)用DataBinder、Eval等方法来直接进行格式化:
后台关键代码:
<span style="white-space:pre"></span>DataTable dt= new NewsManager().SelectById(newsid);//这里得到的dt为从直接数据库中查询到的数据
<span style="white-space:pre"></span> repNews.DataSource=dt;
repNews.DataBind();
前台关键代码:
<span style="white-space:pre"></span><asp:Repeater ID="repNews" runat="server">
<ItemTemplate>
<p class="con_time">
发布时间:
<%# DataBinder.Eval(Container.DataItem,"createTime","{0:yyyy-MM-dd HH:mm:ss}")%><%--此处createTime为上面dt中的字段名--%>
</p>
</ItemTemplate>
</asp:Repeater>
java怎么从数据库中取出时间
在刚接触数据库操作时就发现时间在Java和数据库自己传输时经常出错,后来自己不断的调试得出一种解决方法:
在建立javaBean时将变量如time直接定义为Date类型,而数据库表单里的数据类型定义为datetime。当向数据库增加一条数据时,
stm.setString(4, new Date().toLocaleString());
当然有人会觉得,我定义的是Date类型的,为什么要用setString,因为后面我是使用了当前时间的一个字符串,所以要用String类型,
而且写sql语句时写数据表里数据名就可以,string直接存进去完全没有问题,只是我调出来的比较好玩的发现,前面我用date的几种
属性也不成功,应该是我水平有限,如果大家有好的方法请多多指教。
而读取一条数据时rs.getDate();
第二种方法就比较正经:
在建立javaBean是将变量如time直接定义为 Timestamp类型,这是sql里的一种类型,同样的数据表里数据类型还是定义为datetime,
当向数据库增加一条数据时,stm.setTimestamp(6,new Timestamp(new Date().getTime()));
很正常的一种写法,而读取数据时rs.getTimestamp()
这是我常用的两种方法。
java,resultset取出时间的问题
.取出毫秒后可以通过使用SimpleDateFormat来格式化这个日期.
时间字段的读取与数据库中的表结果的关系很紧密:
1,如果数据库中是datetime类型,那么如果应用getString("writerDate")有小时,分钟,秒
2,如果数据库中是datetime类型,那么如果应用getDate("writerDate")没有小时,分钟,秒
3,如果数据库中是datetime类型,那么如果应用getTimestamp("writerDate")有小时,分钟,秒
4,如果数据库中是String类型,那么如果应用getTimestamp("writerDate")报错
5,如果数据库中是String类型,那么如果应用getString("writerDate")有小时,分钟,秒
6,如果数据库中是String类型,那么如果应用getDate("writerDate")报错
在java中是String型,在数据库中是date型,怎么传时间
说了一堆,最关键的两个信息不交代清楚;
用的什么数据库?createtime字段是什么格式的?
举个例子给你吧,mysql的 datetime字段
有表:
CREATE TABLE `u_user`(
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nickname` varchar(32) DEFAULT NULL,
`addtime` datetime DEFAULT NULL,
PRIMARY KEY(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
插入的话
INSERT INTO u_user(nickname,ADDTIME) VALUES('小明','2017-09-29 08:59:59');
INSERT INTO u_user(nickname,ADDTIME) VALUES('小军','20170930');
这样写都可以的插入。
可以查到资料:
MySQL以:
‘YYYY-MM-DD HH:MM:SS’
格式检索与显示 DATETIME类型。支持的范围是:
‘1000-01-01 00:00:00’
到
‘9999-12-31 23:59:59’。
你要是用的别的数据库,或字段,就根据这个思路建个表,试试吧。
好了,文章到此结束,希望可以帮助到大家。