2012-01-28 84 views
0

我在mysql中有一個簡單的表,其中有一個record_id和一個date類型的字段。我怎樣才能轉換下面的查詢,以便它在插入..它似乎日期輸入無法識別。如何將此輸入轉換爲可接受的日期

insert into test_table (record_id,date_test) values ('1','21-JUN-42') 

我將不勝感激任何幫助或解釋。

PS:date_test的類型是日期。

謝謝

+0

RECORD_ID是自動遞增的主鍵? – 2012-01-28 05:52:16

+0

什麼錯誤你得到 – 2012-01-28 05:53:53

+0

我沒有與主鍵的問題,它的日期字段我需要能夠將該字段強制轉換爲有效的日期。 – user710502 2012-01-28 05:58:47

回答

1

待辦事項轉換插入前

insert into test_table (record_id,date_test) values ('1', STR_TO_DATE('21-JUN-12', '%e-%M-%y')) 
+0

這工作良好,但它把2012年,而它需要是1912例如 – user710502 2012-01-28 06:12:30

+0

然後,你應該有你的年份字符串與4位數字格式。並將日期格式化程序更改爲'%e-%M-%Y' – batbaatar 2012-01-28 06:17:46

+0

對於1912年,您需要以21-JUN-1912格式提供。並使用STR_TO_DATE('您的日期字符串','%e-%M-%Y');其他威脅默認情況下將需要當前世紀。如果你的所有記錄在19 ..那麼你可以手動做一些事情。 – 2012-01-28 06:20:16

0

重新安排的日期爲ISO-8601格式:

insert into test_table (record_id, date_test) values (1, '1942-06-21') 

我也掉在了record_id值引號,你不應該引用數字即使MySQL將讓你逃脫它。

+0

我無法安排它的應用程序發送它那樣..有沒有演員或我可以用來將其轉換爲該格式的東西? – user710502 2012-01-28 05:57:38

1

如果要插入日期字段,你必須這樣做的格式(YYYY-MM-DD).

沒有必要把RECORD_ID的值,如果它是auto increment

使用DATE_FORMAT更改日期要求的格式一樣

date_format('Your date string',"%Y-%m-%d") 

OR

STR_TO_DATE('Your date string', "%e-%M-%Y") 
+0

我無法安排它的應用程序發送它就像..有沒有演員或我可以用來將其轉換爲該格式的東西? – user710502 2012-01-28 05:59:12

+0

是。使用date_format函數更改 – 2012-01-28 06:00:55

+0

對於1912,您需要以21-JUN-1912格式給出。並使用STR_TO_DATE('您的日期字符串','%e-%M-%Y');其他威脅默認情況下將需要當前世紀。如果你的所有記錄在19 ..那麼你可以手動做一些事情。 – 2012-01-28 06:17:42

相關問題