2009-11-12 110 views

回答

1

當然,這可以做到,但爲什麼你需要這樣做,當數據類型存在時,爲你更可靠地提供更好的性能?

我想我聞到這裏的EAV反模式...

但是,爲了回答你的問題,你可以施放包含數字的實際數值,像這樣的字符串:

SELECT '123.456' + 0.0; 

可以投包含日期文字與STR_TO_DATE()功能的實際日期數據類型的字符串:

SELECT STR_TO_DATE('Nov 12, 2009', '%M %d,%Y'); 
2

不,這是不行的。您應該使用適當的數據類型。根據MySQL參考手冊,爲了存儲dates and/or times,您可以使用DATETIME,DATE,TIMESTAMP,TIME和YEAR。對於雙打,有各種numeric types

將雙精度和日期存儲到VARCHAR字段中只會讓您陷入困境,並且會導致性能問題。

+0

雖然它通常確實「不好」,但您並不總是有選擇:http://en.wikipedia.org/wiki/Entity-attribute-value_model – ChssPly76 2009-11-13 01:05:05

相關問題