【问题标题】:SQL Table with Date带日期的 SQL 表
【发布时间】:2016-01-24 21:01:06
【问题描述】:

所以我正在创建一个 SQL 表:

create table Customer 
(customerID char(25) not null,
name char(50),
address char(25),
dateRegistered DATETIME(6),
noOfDvdHiring int(5),
primary key (customerID));

我收到以下错误:

ORA-00907: 缺少右括号

我认为这与 DATETIME 有关,这是显示日期的正确方法吗? (yyyy-mm-dd)

【问题讨论】:

  • ORA-00907: missing right parenthesis 听起来不像 MySQL。你确定是 MySQL?
  • 可能只是 Oracle SQL
  • 这是一条 oracle 错误消息。 MySQL 无法生成 ORA-nnnnn 消息。
  • 如果一切都失败了,请阅读手册:docs.oracle.com/database/121/SQLRF/… 实际上记录了有效的数据类型

标签: sql oracle datetime sqldatatypes


【解决方案1】:

MySQL 5.6 - 工作正常

create table Customer 
(customerID char(25) not null,
name char(50),
address char(25),
dateRegistered DATETIME(6),
noOfDvdHiring int(5),
primary key (customerID));

SqlFiddleDemo

MySQL 5.5 - 不使用DATETIME(6)

create table Customer 
(customerID char(25) not null,
name char(50),
address char(25),
dateRegistered DATETIME,
noOfDvdHiring int(5),
primary key (customerID));

SqlFiddleDemo2

Oracle

create table Customer 
(customerID char(25) not null,
name char(50),
address char(25),
dateRegistered DATE,
noOfDvdHiring int,
primary key (customerID));

SqlFiddleDemo3

请记住,MySQLOracle 是不同的产品,它们支持不同的数据类型并且可能使用自己的语法。

【讨论】:

    【解决方案2】:

    (customerID 字符(25)

    您应该改用 VARCHAR2CHAR 向右填充到定义的大小。浪费存储空间。

    dateRegistered DATETIME(6)

    DATETIME 不是 Oracle 中支持的数据类型。你可以使用:

    • 日期
    • 时间戳

    DATE 可以存储高达秒的精度。要超越,请使用 TIMESTAMP,它是日期数据类型的扩展。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      相关资源
      最近更新 更多