2009-11-12 111 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

相关问题