2015-10-28 30 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