2011-07-29 65 views
0

我有一個從ODBC設置使用MSQuery的excel導入和所有的數據和行我想返回罰款那裏但是當我將數據發送到我的Excel工作簿我缺少3場日,月&年任何人都可以找出原因嗎?Excel ODBC從MySQL導入

SELECT contract_0.create_date AS 'Submitted Date', 
     -- abbreviating 
     contract_0.install_date AS 'installed_US', 
     RIGHT(contract_0.install_date,2) AS 'day', 
     MID(contract_0.install_date,6,2) AS 'month', 
     LEFT(contract_0.install_date,4) As 'year' 
      -- abbreviating 
FROM `web54-reiga-gms`.contact contact_0, `web54-reiga-gms`.contract contract_0, `web54-reiga-gms`.user user_0 
WHERE contract_0.contact_id = contact_0.id AND contract_0.user_id = user_0.id 

我MSQUERY以上代碼

* 編輯* *

我使用Excel 2010在Windows 7和MySQL ODBC 3.5

UPDATE * *

CREATE TABLE `contract` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `user_id` int(11) NOT NULL, 
    `installer` varchar(50) DEFAULT NULL, 
    `fitter` varchar(50) DEFAULT NULL, 
    `guarantee_no` varchar(50) DEFAULT NULL, 
    `contact_id` int(11) DEFAULT NULL, 
    `equipment` varchar(32) DEFAULT NULL, 
    `certificate_no` varchar(50) DEFAULT NULL, 
    `install_date` date DEFAULT '0000-00-00', 
    `create_date` date DEFAULT '0000-00-00', 
    `edit_date` date DEFAULT '0000-00-00', 
    `edited_by` int(11) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 
+0

我簡化您的故障排除查詢。您可以通過刪除除contract_0表之外的所有表來進一步簡化它,因爲它們在此問題中不重要。 –

回答

0

您正在將字段install_date視爲字符串。這可能是DateDateTime字段,要獲取您應該使用extract function的個人年,月和日值。

好的。正如我懷疑,你正在處理日期。替換這些行:

RIGHT(contract_0.install_date,2) AS 'day', 
    MID(contract_0.install_date,6,2) AS 'month', 
    LEFT(contract_0.install_date,4) As 'year', 

這些:

EXTRACT(YEAR FROM contract_0.install_date) AS 'day', 
EXTRACT(MONTH FROM contract_0.install_date) AS 'month', 
EXTRACT(DAY FROM contract_0.install_date) As 'year', 
+0

我可以通過電子郵件向您發送我的服務器詳細信息,以便您可以看一下嗎? –

+0

@Justin:請不要那樣做。這不是該如何工作。你能否爲表格生成CREATE腳本,更改任何會暴露敏感信息並將其添加到你的文章的東西? –

+0

以上建議更新爲建議 –