是不是可以在mysql上的varchar中存储double和date

时间:2009-11-12 22:56:40

标签: mysql

如果是我如何查询double和date,我的意思是必须有一种方法可以将它们强制转换,然后将它们排序。例如。

2 个答案:

答案 0 :(得分:2)

不,不行。您应该使用适当的数据类型。根据MySQL参考手册,存储dates and/or times,您可以使用DATETIME,DATE,TIMESTAMP,TIME和YEAR。对于双打,有各种numeric types

将双打和日期存储到VARCHAR字段只会让您遇到麻烦,并且还会导致性能问题。

答案 1 :(得分:1)

当然,这可以做到,但是为什么你需要这样做,当存在的数据类型能够更可靠地为您提供更好的性能时呢?

我想我在这里闻到了EAV反模式......

但是要回答你的问题,你可以将包含数字的字符串转换为实际的数值,如下所示:

SELECT '123.456' + 0.0;

您可以使用STR_TO_DATE()函数将包含日期文字的字符串强制转换为实际日期数据类型:

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