
oracle中Date类型的问题?
我在oracle数据库中,date类型的数据但是我只要存年,我用to_date('1483','yyyy')转了,但是数据库是存的(1483/11/1)这种格式的数据,我...
我在oracle数据库中,date类型的数据但是我只要存年,我用 to_date('1483', 'yyyy')转了,但是数据库是存的(1483/11/1)这种格式的数据,我从前台如果只输入四位年的话,后台date类型的数据根本接收不到,我想知道这是什么原因?
展开
7个回答
展开全部
你在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设计,不建议你动数据库的默认参数。
祝你设计愉快!
如果你要修改oracle数据库的参数的话:
就修改 nls_date_format 的格式为 yyyy
修改注册表中:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1
添加一个字符串的值 名称:NLS_DATE_FORMAT 值 :YYY Y(你要的日期格式)
但是这样会影响到你整个oracle的date设计,不建议你动数据库的默认参数。
祝你设计愉快!
展开全部
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保存。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.日期类型是包含年、月、日的, to_date('1483', 'yyyy')传日期类型,也会有默认的月、日(应该为电脑显示的月份和日期),所以你只输入4位数字,就不是正确的日期格式,后台无法接收。
2.如果你只想存年份的话,数据库结构里最好用数字类型就行了,不但方便存储也方便计算
2.如果你只想存年份的话,数据库结构里最好用数字类型就行了,不但方便存储也方便计算
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Oracle的DATE类型长度是7,7个字节分别表示世纪、年、月、日、时、分和秒。
所以只存年份到date类型是不行的。
我建议你将这个字段换成varchar类型的,使用to_char(sysdate,'YYYY')就可以从前台获取到年份。
所以只存年份到date类型是不行的。
我建议你将这个字段换成varchar类型的,使用to_char(sysdate,'YYYY')就可以从前台获取到年份。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只存年的话,用number,别用date,
to_date他会把当前月的第一天加进去的.
to_date他会把当前月的第一天加进去的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询