2015-10-25 4 views
2

Так я создаю SQL таблицу:таблицы 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: missing right parenthesis

Я считаю, что это что-то делать с DATETIME, это правильный способ отображения даты? (Гггг-мм-дд)

+0

'ORA-00907: недостающая правая скобка' не похожа на MySQL. Вы уверены, что это MySQL? – Rudie

+1

Возможно, это просто Oracle SQL – Tom

+0

Это сообщение об ошибке oracle. MySQL не способен генерировать сообщение ORA-nnnnn. –

ответ

2

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 - это разные продукты, и они поддерживают разные типы данных и могут использовать собственный синтаксис.

+0

Спасибо, но появляется то же сообщение об ошибке – Tom

+0

@Tom See обновленный – lad2025

0

(customerID char(25)

Вы должны использовать VARCHAR2 вместо этого. CHAR является правильным дополнением к определенному размеру. Это потеря складских помещений.

dateRegistered DATETIME(6)

DATETIME не поддерживается типданных в Oracle. Вы можете использовать:

  • ДАТА
  • TIMESTAMP

ДАТА может хранить до секунды точность. Чтобы выйти за пределы, используйте TIMESTAMP, который является расширением типа данных даты.

Смежные вопросы