我需要过滤所有大于 2011 年 1 月 1 日的日期。
select * from table_name where date > '01/01/2011';
问题是 date
字段存储 int
值,下面是一个示例:
1339011098
1336717439
1339010538
如何转换sql查询上的date
字段(从int
格式转换为日期格式),我需要将其转换为有效的日期,以便我可以将其与上述日期进行比较。
谢谢。
最佳答案
你走错方向了。与其转换潜在的数百万条记录进行比较,不如尝试转换目标日期,只需执行一次。这些看起来像 unix 时间戳,因此生成的查询应如下所示:
SELECT * FROM `Table_name` WHERE date > unix_timestamp('01/01/2011')
或者,如果您可以控制这一点,请尝试使用 ISO 日期格式,这样可以避免与 2013 年 3 月 2 日等日期的欧洲日期格式混淆:
SELECT * FROM `Table_name` WHERE date > unix_timestamp('2011-01-01')
关于mysql - 将日期从数值转换为日期有效格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904105/