2010-06-14 55 views
0

是否有可能做DATE_SUB(".$date." , INTERVAL 100 DAY)如果存储日期的列的类型是varchar(255)或我需要将该列转换为“DATE”类型?Mysql数据转换

回答

1

是的,如果您以yyyy-mm-dd格式存储数据,则可以。
否则,你应该改变它到这一个。

+0

日期以d-m-y格式存储。如果我尝试使用查询'SELECT * from videos WHERE user_id = $ id和date_uploaded> = DATE_SUB(“。$ date。”,INTERVAL 100 DAY)来查询mysql,我无法得到任何结果。 转换日期我使用PHP命令'$ date = date('d-m-y')' 这个查询有什么问题? – Sergio 2010-06-14 11:56:16

+1

@Sergio问题显而易见:您需要转换存储在数据库中的日期。您需要将该列转换为“DATE”类型,是的。通过这样做,你会为自己做出巨大的努力。 (请注意,首先必须转换此列的值,否则将丢失数据。) – 2010-06-14 12:48:30

0

您可以使用mysql中的STR_TO_DATE()函数将日期存储为varchar。例如

DATE_SUB(STR_TO_DATE(date_column_name,'%d-%m-%y'),INTERVAL 100 DAY),只要确保日期格式字符串与日期列中的任何内容相匹配即可。

+0

+1:更好地显式转换(如果不是实际更正所讨论列的数据类型)。 – 2010-06-14 14:50:47