mysql能找到unix时间戳的年份值吗?

时间:2009-08-12 21:25:38

标签: mysql

使用标准的unix时间戳存储数据库中发布条目的日期。

是否有可能只使用mysql查询(没有php逻辑)来选择在某一年发布的条目?

id喜欢避免检索所有条目,然后使用php过滤年份值。我当然可以把这一年存放在一个单独的领域,只是好奇这个

5 个答案:

答案 0 :(得分:3)

这应该是你想要的:

SELECT FROM_UNIXTIME(my_unix_timestamp_column, '%Y') AS year FROM table_name WHERE my_unix_timestamp_column BETWEEN UNIX_TIMESTAMP('2004-01-01 00:00:00') AND UNIX_TIMESTAMP('2004-12-31 23:59:59');

答案 1 :(得分:2)

你只希望MySQL做一次提取年份的艰苦工作:

SELECT your, columns
FROM posts
WHERE postdate BETWEEN UNIX_TIMESTAMP('20080101') AND (UNIX_TIMESTAMP('20090101')-1)

显然,这很容易适应在某个月或几天或十年内提取帖子等。

答案 2 :(得分:1)

答案 3 :(得分:0)

更好的方法是使用一点PHP来创建所需的unix时间戳。如果是今年尝试

$timestamp = strtotime("January, 1, 2009");
$db->query("Select * from table where time < $timestamp");

这只是一个例子,但是你可以快速缩小搜索结果,只做非常小的php逻辑。

答案 4 :(得分:0)

取决于你的mysql版本。 5.1具有这个简洁的功能FROM_UNIXTIME(unix_timestamp,format)

mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
    ->                      '%Y %D %M %h:%i:%s %x');


    -> '2007 30th November 10:30:59 2007'