我們正在創建世界歷史數據庫的歷史歸檔,我們需要一個引用AD中所有日期的日期查找表。如何創建此表格的值 - 從1AD到2011年爲YYYY/MM/DD?數據庫是MySQL。AD日期的數據倉庫
問題:
我用Excel預填充的日期,然後導入到MySQL作爲:YYYY/MM/DD但Excel不能識別幾年如0007 0008等等等等我無法自動複製單元格來生成日期。我必須手動做到這一點,這需要幾天時間,從1AD到2011年爲YYYY/MM/DD。
閏年是在1752年引入的。如果我以編程方式生成日期,如何處理1752年之前沒有閏年的日期?它會產生錯誤的日期。
我的表:
CREATE TABLE `dates` (
`date_id` int(10) NOT NULL,
`format` char(10) NOT NULL,
`century` int(10) NOT NULL,
`decade` int(10) NOT NULL,
`year` int(10) NOT NULL,
`month` int(10) NOT NULL,
`week` int(10) NOT NULL,
`day` int(10) NOT NULL,
`month_year` int(10) NOT NULL,
`week_year` int(10) NOT NULL,
`week_month` int(10) NOT NULL,
`day_year` int(10) NOT NULL,
`day_month` int(10) NOT NULL,
`day_week` int(10) NOT NULL,
PRIMARY KEY (`date_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
爲什麼普通的'datetime'型列不足?是否有具有多個日期或日期範圍的事件? – 2011-04-30 20:18:46
是的,這是一個深入分析世界歷史數據庫。想想任何像世界大戰,革命等事件都會跨越數天,數週,數月,數年等等。另外,我們有歷史的信仰,就像人們相信直到19-20世紀的女巫一樣,這個信念跨越了數千年年份。 – yardy 2011-04-30 20:25:23
即使是日期範圍,你只需要兩個'datetime'列(開始/結束)......你的方法仍然讓我感到有趣。你能證明爲什麼'datetime'列不夠?關於這個最糟糕的部分是,你每天都需要在'日期'表中創建一個新記錄......至少在9999AD的時間裏,你將不得不生成日期。而最糟糕的是,這張表中的大部分將會充滿重複數據(例如,世紀通常是無用的 - 您可以在運行時確定這一點,不需要數據庫行告訴你這一點)。 – 2011-04-30 20:33:57