2015-10-28 26 views
2

因此,我有一组表格处理旧版本的MySQL,但是在这个新版本中,它导出的表格给出了语法错误。mysql导出此表时由mysql创建的语法不正确?

CREATE TABLE `joblistings` (
`jobid` int(11) NOT NULL AUTO_INCREMENT COLLATE utf8_unicode_ci NOT NULL, 
`id` varchar(255) NOT NULL, 
`client` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 
`service` tinyint(1) COLLATE utf8_unicode_ci NOT NULL, 
`firstline` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 
`city/town/village` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 
`county` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 
`postcode` varchar(9) COLLATE utf8_unicode_ci NOT NULL, 
`daterequired` date(YYY-MM-DD) NOT NULL, 
`timefrom` time(HH:MM), 
`timeto` time(HH:MM), 
    PRIMARY KEY (`jobid`), 
    UNIQUE KEY `id` (`jobid`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10 ; 

ERROR 1064(42000):你在你的SQL语法错误;检查与您的MySQL服务器版本对应的 手册,以便在'(YYY-MM-DD)NOT NULL,`timefrom`时间(HH:MM),`timeto`时间(HH:MM) ),原发性“第10行

这3似乎是这个问题,从我的理解,但我不熟悉不够好版本和变化,看这个固定的方法。

`daterequired` date(YYY-MM-DD) NOT NULL, 
`timefrom` time(HH:MM), 
`timeto` time(HH:MM), 

任何帮助将不胜感激,保持这种格式是非常重要的,我的系统的功能。

+0

'日期和时间'将在数据库中具有默认格式,因此您不需要明确提供格式'daterequired date()NOT NULL,timefrom time(),....' –

+1

我编辑过添加错误信息的问题,你应该自己完成。 –

+0

@ÁlvaroG.Vicario谢谢,对不起,我不认为补充说。 – iceytoa1

回答

1

您无法更改日期和时间的格式。它将以默认格式存储('YYYY-MM-DD HH:MM:SS')。您可以参考documentation了解更多详情。

SQL Fiddle Demo设置为默认格式后。

如果你想以某种其他格式获得输出,那么你必须使用DATE_FORMAT()函数来获取它所需的格式。

+0

非常感谢您的帮助。 我之前使用的版本使用UNIX时间戳的格式,所以我必须指定它。 – iceytoa1