mysql - 将日期从数值转换为日期有效格式

标签 mysql sql date

我需要过滤所有大于 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/

相关文章:

php - 如何循环mysql_query直到结果?

java - 创建文件名时,单引号在java中自动被两个单引号替换

MySQL 查询 - 需要列出排名,包括特定分类的重复项

sql - Postgres : checking value before conditionally running an update or delete

SQL:如何在创建表时指定日期格式并填充它

date - 配置单元日期转换不起作用

java - 使用 DateTimeFormatter.ofLocalizedDate 格式化 MonthDay

php - codeigniter,使用 Case When 进行Where 查询

MySQL 计数如果使用 4 个表或 Perl

Python MyQLdb execute 不接受参数