如果是我如何查询double和date,我的意思是必须有一种方法可以将它们强制转换,然后将它们排序。例如。
答案 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');