MySQL中时间戳的比较
我的数据库中的时间戳采用以下格式:MySQL中时间戳的比较,mysql,Mysql,我的数据库中的时间戳采用以下格式: 2011-02-26T13:00:00-05:00 但是通过MySQL获取当前的时间戳时: SELECT current_timestamp(); 给了我一些格式像 2011-02-26 13:05:00 我的最终目标是检查所有条目(每2天)并删除那些超过2天的条目,那么我如何将这些条目与2011-02-26T13:00:00-05:00时间戳和当前时间戳进行比较?听起来像是将日期(以首选格式)存储在基于字符的列中(VARCHAR等) 不要。这是a)糟糕
2011-02-26T13:00:00-05:00
但是通过MySQL获取当前的时间戳时:
SELECT current_timestamp();
给了我一些格式像
2011-02-26 13:05:00
我的最终目标是检查所有条目(每2天)并删除那些超过2天的条目,那么我如何将这些条目与
2011-02-26T13:00:00-05:00
时间戳和当前时间戳进行比较?听起来像是将日期(以首选格式)存储在基于字符的列中(VARCHAR
等)
不要。这是a)糟糕的风格,b)你会遇到这样的问题。相反,请使用标准时间戳类型,如果在从数据库查询时需要特定的ISO格式,请相应地对其进行格式化
如果以本机格式存储时间,则不同日期之间的比较将变得微不足道。比较。尝试:
SELECT DATE(`yourtimestamp`) FROM thetablename WHERE DATE(`yourtimestam`) < CURDATE() - INTERVAL 2 DAY;
从表名中选择日期(`yourtimestam`),其中DATE(`yourtimestam`)
这是有道理的,但我是一名初级程序员,负责一个更大项目的一小部分。我同意安德里的观点,最好从正确的数据类型开始。