ORACLE数据库设置date类型默认值后为什么还要手动添加是不是我写错了

ORACLE数据库设置date类型默认值后为什么还要手动添加是不是我写错了,第1张

表字段设置date类型默认值,不需要手工添加,提示没有足够的值,是SQL本身的语法问题,insert语法要求如果不加列名,值的个数必须与表字段个数一致。

你的这种情况下,必须指定字段名。

你在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设计,不建议你动数据库的默认参数。

datetime类型:可用于需要同时包含日期和时间信息的值。

datetime:MySQL 以 'YYYY-MM-DD HH:mm:ss'格式检索与显示 DATETIME 类型。

DateTime 日期和时间部分,可以表示的日期范围从公元1753年1月1日00:00:00000 到9999年12月31日23:59:59997 ,精确到333毫秒,它需要8个字节的存储空间,其中前4个字节用于存储1900年1月1日以前或以后的天数,数值分正负,正数表示在此日期之后的日期,负数表示在此日期之前的日期;后4个字节用于存储从此日零时起所指定的时间经过的毫秒数。

扩展资料

在MySQL中创建表时,很容易通过类型介绍就能选择到合适自己的数据类型。不过到底是选择 datetime 还是 timestamp,可能会有点犯难。这两个日期时间类型各有优点:datetime 的日期范围比较大;timestamp 所占存储空间比较小,只是 datetime 的一半。

另外,timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL 会替你去处理。

参考资料来源:百度百科-SQL数据类型

方法一:通过函数to_char实现时间格式的转换

SQL> select sysdate from dual;

SYSDATE

------------

17-JUN-15

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS'

--------------------------------------

2015-06-17 14:08:21

方法二:更改会话参数

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

方法二:更改参数文件

可以在 initora 中加上一行

nls_date_format='yyyy-mm-dd hh24:mi:ss'

或者

alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss’ scope=spfile;

0 先理解下格式问题

要理解两种格式,一是mysql内部使用和存储时使用的格式,另一个是用户显示的格式;

存储格式:mysql保存日期时间值时使用的CCYY-MM-DD格式遵循ISO 8601标准;

显示格式:显示在输出界面上的格式,可以使用DATA_FORMAT()或TIME_FORMAT()函数来设置和转换;

1 转换和处理

1)提交数据,一是使用标准格式让其自动识别,二是对输入值进行格式指定和转换

insert into t (d) values('2012-01-01'); #使用默认ansi标准格式,让数据库自动识别字串为日期;

insert into t (d) values( STR_TO_DATE('2012/February/01', '%Y/%M/%d') ); #使用字符转换为日期的函数来处理自定义格式的输入值;

2)查询数据,一是不使用格式(即使用默认的CCYY-MM-DD格式),二是指定输出格式

select current_date(); #默认格式

select date_format(current_date(), ''%Y/%M/%d''); #使用自定义格式,具体参考下date_format的帮助,主要是格式控制符的使用。

2 格式化参数

DATE_FORMAT(), TIME_FORMAT(), STR_TO_DATE()这三个函数都接受格式化串作为参数来格式化日期时间

常用的格式化字符:

%Y 4位数字年份 2012

%y 2位数字年份 12

%M 完整英文月份名称,January - December

%b 月份名称前三个字母,Jan - Dec

%m 2位数字月份 01-12

%c 最小位数字月份 1-12

%d 2位数字日期 01-31

%e 最小位数字日期 1-31

%W 工作日名称 Sunday - Saturday

%r 12小时制时间,以AM或PM结尾

%T 24小时制时间

%H 24小时制小时 00-23

%i 2位数字分钟 00-59

%s 2位数字秒数 00-59

%% %文字字符

以上就是关于ORACLE数据库设置date类型默认值后为什么还要手动添加是不是我写错了全部的内容,包括:ORACLE数据库设置date类型默认值后为什么还要手动添加是不是我写错了、oracle数据库date类型存储为2014-04-01下午 02:21:16格式、数据库datetime是什么类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9769863.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存