将一个日期如(2014-03-21)存进数据库,如何实现数据库表中就只显示(2014-03-21)

林家的人 发布于 2014/05/18 22:16
阅读 2K+
收藏 1
在表单中有个日期填写框,对应的数据类型为java中的Date,填写完日期填写框将日期存进数据库(sql2008),数据库中对应的字段为datetime类型,想打印出表单填写的信息,但是打印出来的日期和数据表里的日期后面都多了好多个零。如存进2014-02-02,在表里会显示为2014-02-02 00:00:00.000,请教一下表中的日期字段要如何设计才能避免这种现象。
加载中
0
林家的人
林家的人
多谢给意见的各位了,问题算是解决了,是这样的,表里日期字段用datetime类型,存进去2014-03-03,会显示2014-03-03 00:00:00.000,不过取出来是14-3-3,算是可以了,虽然不能输入和显示的完全一样(可以一样,但要在代码进行格式化输出,而我的目标是尽量不动代码),表里日期用date类型,存进去2014-02-03,表里显示2014-02-03,去出来显示是14-02-03,也算是解决了,上面有朋友说用,char,nvarchar(10),....我试过了,会报错,大概内容是varchar 值转换为 JDBC 数据类型 TIMESTAMP 时发生错误。查了一下,JDBC数据类型,sql数据类似,和java数据类型存在数据类型映射,我代码里的声明Date类型的日期时,导包错了,应该要导入,java.sql.Date,我导成java.util.Date。下面是映射表,需要的可以看一下。http://blog.csdn.net/fly2749/article/details/6058383
1
Tuesday
Tuesday

非要这么蛋疼, 用char类型.

个人觉得时间表不用时间戳都是坑公司.

错II过
错II过
何止蛋疼,我公司一个女程序员,非要把time设成 datetime类型,我说用char就好了,她来个句 哪有时间用char类型的,操,然后我去做了字符串截取— —
林家的人
林家的人
谢谢,我学生党来着,嘻嘻。我试了一下在表中用char类型,存进去的日期格式没有后面的那些零了,换成日期 月份 年份(AM/PM),其实我主要涉及一些struts2的类型装换。
祺爸PiscDong
祺爸PiscDong
+1
0
CloudArchitect
CloudArchitect
具体的显示格式一般都是用程序控制的 跟数据库字段较什么劲
林家的人
林家的人
好吧,我知道截取部分字段就可以了,只不过想了解一下数据库这边有没有办法实现,不过好像看样子,还是得去动java里面的代码,谢谢
0
hibegin
hibegin
用sql.date 看看。不用util 的那个看看
林家的人
林家的人
断网了只能用手机回复了,刚刚试了一下,用date类型的话,表用的日期的样式和我输入的一样了,不过取出来就报错错,而且取不到数据,报的错是:将varchar值转换为jdbc数据类型TIMESTAMP时发生错误,怎么会报这样的错呢?我就改了表里的日期属性为date,其他的没动,明天再看看吧,谢谢
0
卡农独奏
卡农独奏
好像一个是util.date一个sql.date就能搞定了
0
Neeke
Neeke
datetime不是国际标准
0
Andrew1985
Andrew1985
数据库里面直接解决不就行了 1个是将date转为nvarchar(10)即可,2个是时间类型加个120.
林家的人
林家的人
回复 @Andrew1985 : .>o<,日期格式化处理啊,嗯,好的,谢谢
Andrew1985
Andrew1985
@林家的人 declare @dt date set @dt=GETDATE() select @dt date类型直接就没有00的啊
林家的人
林家的人
回复 @Andrew1985 : microsoft sql server 2008
Andrew1985
Andrew1985
@林家的人 什么数据库
林家的人
林家的人
用navrchar(10)类型的话,表里的日期后面确实没有出现零了,不过日期格式换了,比如我存的顺序是年月日,保存的是日月年,还有就是取而且取不到数据,报的错是:将varchar值转换为jdbc数据类型TIMESTAMP时发生错误,
0
Shazi199
Shazi199

存成什么样并不重要,重要的是保存以后没有数据丢失就行,你这里只是显示的问题而已,自己定义一个格式化方法来显示年月日即可

林家的人
林家的人
好吧,知道了,谢谢
0
林家的人
林家的人

引用来自“林家的人”的评论

多谢给意见的各位了,问题算是解决了,是这样的,表里日期字段用datetime类型,存进去2014-03-03,会显示2014-03-03 00:00:00.000,不过取出来是14-3-3,算是可以了,虽然不能输入和显示的完全一样(可以一样,但要在代码进行格式化输出,而我的目标是尽量不动代码),表里日期用date类型,存进去2014-02-03,表里显示2014-02-03,去出来显示是14-02-03,也算是解决了,上面有朋友说用,char,nvarchar(10),....我试过了,会报错,大概内容是varchar 值转换为 JDBC 数据类型 TIMESTAMP 时发生错误。查了一下,JDBC数据类型,sql数据类似,和java数据类型存在数据类型映射,我代码里的声明Date类型的日期时,导包错了,应该要导入,java.sql.Date,我导成java.util.Date。下面是映射表,需要的可以看一下。http://blog.csdn.net/fly2749/article/details/6058383
多谢给意见的各位了,问题算是解决了,是这样的,表里日期字段用datetime类型,存进去2014-03-03,会显示2014-03-03 00:00:00.000,不过取出来是14-3-3,算是可以了,虽然不能输入和显示的完全一样(可以一样,但要在代码进行格式化输出,而我的目标是尽量不动代码),表里日期用date类型,存进去2014-02-03,表里显示2014-02-03,去出来显示是14-02-03,也算是解决了,上面有朋友说用,char,nvarchar(10),....我试过了,会报错,大概内容是varchar 值转换为 JDBC 数据类型 TIMESTAMP 时发生错误。查了一下,JDBC数据类型,sql数据类似,和java数据类型存在数据类型映射,我代码里的声明Date类型的日期时,导包错了,应该要导入,java.sql.Date,我导成java.util.Date。下面是映射表,需要的可以看一下。http://blog.csdn.net/fly2749/article/details/6058383
0
宝贝-凤
宝贝-凤
个人感觉用timestamp比较好!
返回顶部
顶部