oracle能单独存一个不带时间的日期么?或者是不带日期的时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle能单独存一个不带时间的日期么?或者是不带日期的时间相关的知识,希望对你有一定的参考价值。

貌似总是有时间

不行,oracle没有不带时间的日期,oracle日期时间类型有date和timestamp,都带日期和时间,文档中说:
DATE
Valid date range from January 1, 4712 BC, to December 31, 9999 AD. The default format is determined explicitly by the NLS_DATE_FORMATparameter or implicitly by the NLS_TERRITORY parameter. The size is fixed at 7 bytes. This datatype contains the datetime fields YEAR, MONTH, DAY,HOUR, MINUTE, and SECOND. It does not have fractional seconds or a time zone.

TIMESTAMP [(fractional_seconds_precision)]
参考技术A 不行,oracle没有不带时间的日期,oracle日期时间类型有date和timestamp,都带日期和时间,文档中说:
DATE
Valid date range from January 1, 4712 BC, to December 31, 9999 AD. The default format is determined explicitly by the NLS_DATE_FORMATparameter or implicitly by the NLS_TERRITORY parameter. The size is fixed at 7 bytes. This datatype contains the datetime fields YEAR, MONTH, DAY,HOUR, MINUTE, and SECOND. It does not have fractional seconds or a time zone.

TIMESTAMP [(fractional_seconds_precision)]
Year, month, and day values of date, as well as hour, minute, and second values of time, where fractional_seconds_precision is the number of digits in the fractional part of the SECOND datetime field. Accepted values of fractional_seconds_precision are 0 to 9. The default is 6. The default format is determined explicitly by the NLS_DATE_FORMAT parameter or implicitly by the NLS_TERRITORY parameter. The sizes varies from 7 to 11 bytes, depending on the precision. This datatype contains the datetime fields YEAR, MONTH, DAY, HOUR, MINUTE, and SECOND. It contains fractional seconds but does not have a time zone.

如果确实不想带时间,可以考虑用number(8,0),这比varchar(8)或varchar(10)查询效率高追问

这个问题明白了
再问个问题:
就是如果对应java的float和double,我是不用number比用float好?
那我number的那两个参数怎么定义呢?

追答

oracle里有binary_float与binary_double,但印象中这2个jdbc不能访问,而且数据库数据一般都要求精确,所以我一般很少用浮点类型的,都是用数值类型,对应到java就是BigDecimal

本回答被提问者和网友采纳
参考技术B 不行 存储在数据表里会自动加上时分秒的
一般也不会有这样的要求 如果一定要这样做 就把数据类型改为字符串即可
--转换如下
selec to_char(字段,'yyyy-mm-dd') from 表名
参考技术C 只是显示格式的问题,to_char一下就可以了。你用的是timestamp类型? 参考技术D 可以修改DATE的类型或者直接修改为VARCHAR2类型,指定为自己想要的字段类型,但已经定义好的字面,不能再修改啦.

以上是关于oracle能单独存一个不带时间的日期么?或者是不带日期的时间的主要内容,如果未能解决你的问题,请参考以下文章

怎么查看oracle数据库是不是已启动么?

MySql数据库的存储过程能返回游标么?

win8能安装oracle10g数据库么?

(Oracle) SQL 中的正则表达式将日期/时间拆分为单独的日期和时间列

Oracle 根据传入日期参数 返回年龄 函数......

在oracle中怎么判断一个日期是不是在一定时间范围内