oracle中Date类型的问题?

我在oracle数据库中,date类型的数据但是我只要存年,我用to_date('1483','yyyy')转了,但是数据库是存的(1483/11/1)这种格式的数据,我... 我在oracle数据库中,date类型的数据但是我只要存年,我用 to_date('1483', 'yyyy')转了,但是数据库是存的(1483/11/1)这种格式的数据,我从前台如果只输入四位年的话,后台date类型的数据根本接收不到,我想知道这是什么原因? 展开
 我来答
513524658
推荐于2017-11-24 · TA获得超过116个赞
知道答主
回答量:52
采纳率:100%
帮助的人:44.4万
展开全部
你在oracle数据库中定义char类型的字段,在程序中使用TO_CHAR(ld_date,'yyyy') 来提取ld_date中的年份,然后save()数据库就可以了。

如果你要修改oracle数据库的参数的话:
就修改 nls_date_format 的格式为 yyyy
修改注册表中:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1
添加一个字符串的值 名称:NLS_DATE_FORMAT 值 :YYY Y(你要的日期格式)
但是这样会影响到你整个oracle的date设计,不建议你动数据库的默认参数。

祝你设计愉快!
HttpChu
2011-11-21 · TA获得超过409个赞
知道小有建树答主
回答量:375
采纳率:100%
帮助的人:363万
展开全部
oracle的date类型保存格式必定是YYYY-MM-DD hh:mm:ss,你只存to_date('1483', 'yyyy')时,数据库保存为1483-01-01 00:00:00,但你可用to_char()函数只显示年。如果你在前台只输入年,你必须用to_date转换才能插进数据库。前台用输入年查找时可把数据库字段截取年来比较。其实最简单的方法时,如果你只需保存年,可用number、char或varchar2保存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
manolin
2011-11-21
知道答主
回答量:14
采纳率:0%
帮助的人:10.7万
展开全部
1.日期类型是包含年、月、日的, to_date('1483', 'yyyy')传日期类型,也会有默认的月、日(应该为电脑显示的月份和日期),所以你只输入4位数字,就不是正确的日期格式,后台无法接收。
2.如果你只想存年份的话,数据库结构里最好用数字类型就行了,不但方便存储也方便计算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凭焮欣Ud
2011-11-23
知道答主
回答量:16
采纳率:0%
帮助的人:7.1万
展开全部
Oracle的DATE类型长度是7,7个字节分别表示世纪、年、月、日、时、分和秒。
所以只存年份到date类型是不行的。

我建议你将这个字段换成varchar类型的,使用to_char(sysdate,'YYYY')就可以从前台获取到年份。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AiDirac
2011-11-21 · TA获得超过6785个赞
知道大有可为答主
回答量:8833
采纳率:33%
帮助的人:1亿
展开全部
只存年的话,用number,别用date,
to_date他会把当前月的第一天加进去的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式