为什么sysdate的返回类型是DATE?

0 sql oracle date

Sysdate返回当前系统日期和时间,返回类型为date。但日期类型不应该只包含日期信息而不包含时间信息。为什么这是可以接受的?

MT0*_*MT0 6

回头看:

  • Oracle 版本 2 于 1979 年发布
  • 美国国家标准协会于 1986 年采用 SQL 作为标准。
  • ISO 9075:“信息技术数据库语言 - SQL”于 1987 年采用。
  • Oracle 版本 6 于 1988 年发布。

因此,Oracle 对DATE数据类型的实现早于 ANSI 标准,并且 Oracle 选择保留其原始实现,而不是破坏数据库版本的向后兼容性来实现 ANSI/ISO 标准。

但日期类型不应该只包含日期信息而不包含时间信息。

ANSI/ISO 标准包含DATE年、月和日组成部分。

Oracle 的实施早于 ANSI/ISO 标准,并且由于历史原因不符合该标准。它是一种二进制数据类型,由 7 个字节组成,分别表示世纪、世纪年份、月、日、小时、分钟和秒。它总是具有这些组件。