从结果中计算日期的最佳方法?

时间:2009-02-18 04:56:17

标签: php mysql sorting timestamp date

我有一个数据库表。它有几百个条目,每个条目都有时间戳。我希望每天只输出,而不是任何日子都重复。

数据:
2009-02-04 06:20:27
2009-02-04 06:20:27
2009-02-05 06:20:27
2009-02-07 06:20:27
2009-02-07 06:20:27
2009-02-07 06:20:27

输出应该只是(时间无关紧要):
2009-02-04 06:20:27
2009-02-05 06:20:27
2009-02-07 06:20:27

实现这一目标的最佳方法是什么?我真的应该骑自行车穿过每一排并相互比较吗?只是看起来效率不高。任何想法/提示?

5 个答案:

答案 0 :(得分:4)

你不能在查询中选择“DISTINCT”时间戳吗?

或者如果每天的时间不同(从您的示例中不确定),您可以使用mysql DATE函数将timestamp列转换为fly的日期。请记住,如果索引在该列上使用,则可能会阻止使用索引。

例如

SELECT DISTINCT DATE(timestamp_column) FROM table

这将删除时间戳的时间部分。

答案 1 :(得分:1)

您可能希望使用mysql DISTINCT关键字在数据库级别执行此操作:

SELECT DISTINCT date
FROM table

如果有重复日期,则会返回,只返回一个。阅读更多相关信息here

答案 2 :(得分:1)

这将打印出双时间戳,但应仅与日期不同。

SELECT DISTINCT CAST(timestamp AS DATE), timestamp, FROM table.

答案 3 :(得分:1)

SELECT DISTINCT CAST(data AS DATE)
    FROM DataTable;

这会删除时间部分,然后给出唯一的DATE值。

答案 4 :(得分:0)

DATE()函数将从日期时间字段中提取日期。您可以使用该结果进行分组。像这样使用:

SELECT fields FROM table WHERE condition GROUP BY DATE(datefield)