2015-08-28 61 views
0

我有一年的數據在一年的數據類型的數據表字段,現在我想插入新的數據與日期數據,我想從舊數據轉換爲默認月份和日期1.1.YearFromOldData日期。 我正在尋找類似函數STR_TO_DATE的東西,但是對於數據類型年NOT VARCHAR NOT VARCHAR,我無法找到它。我將如何做到這一點?如何在mysql中將年份轉換爲日期?

我想這樣做

SELECT YEAR_TO_DATE(myYearField, '%1 /%1 /%Y') FROM mytable的

+1

請編輯您的問題,並提供樣本數據和預期的結果。 –

+0

現在更清楚@GordonLinoff? – Hakaishin

回答

2

假設你有一個varchar場名爲year_dt舊年,使用下面的查詢來獲取默認的日期和月份的日期

SELECT DATE(CONCAT(table.year_dt, '-01-01')) as 'date' FROM table 

這將在默認的格式返回日期即YYYY-MM-DD

+0

抱歉我的措詞不清楚年份是否存儲在數據類型年份。你的方法是否仍然適用於這些信息? – Hakaishin

+0

是的,它應該工作,如果它也是'年'字段,你應該嘗試它 – mynawaz

0

你可以得到時間戳使用

timestamp = (year - 1970)/31557600 
0

STR_TO_DATE()正是你需要的東西插入到數據庫。如果您有四位數年份,字符串,整數或YEAR列,請嘗試此操作。它適用於所有人。

select str_to_date(CONCAT(year_column,'-01-01'), '%Y-%m-%d') 

如果你有兩個數字的年份試試這個(小寫%Y)

select str_to_date(CONCAT(year_column,'-01-01'), '%y-%m-%d') 

這很酷,因爲你可以做各種日期計算的:例如

select str_to_date(CONCAT(year_column,'-01-01'), '%Y-%m-%d') 
     + INTERVAL 1 QUARTER 
     - INTERVAL 1 DAY 

會爲您提供您今年第一季度的最後一天。

+0

對不起,我的措辭不清楚年份是存儲在數據類型年。你的方法是否仍然適用於這些信息? – Hakaishin

+0

是的。請參閱我的編輯。如果你還沒有找到http://sqlfiddle.com/你應該檢查出來。 –

0

如果你想在今年的第一天,我想最簡單的方法是makedate()

select makedate(year, 1) 
相關問題