带日期的 SQL 表
Posted
技术标签:
【中文标题】带日期的 SQL 表【英文标题】:SQL Table with Date 【发布时间】: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/… 实际上记录了有效的数据类型
【参考方案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
请记住,MySQL
和 Oracle
是不同的产品,它们支持不同的数据类型并且可能使用自己的语法。
【讨论】:
【参考方案2】:(customerID 字符(25)
您应该改用 VARCHAR2。 CHAR 向右填充到定义的大小。浪费存储空间。
dateRegistered DATETIME(6)
DATETIME
不是 Oracle 中支持的数据类型。你可以使用:
DATE 可以存储高达秒的精度。要超越,请使用 TIMESTAMP,它是日期数据类型的扩展。
【讨论】:
以上是关于带日期的 SQL 表的主要内容,如果未能解决你的问题,请参考以下文章