【问题标题】:Select Max Distinct Dates from list of Dates从日期列表中选择最大不同日期
【发布时间】:2014-01-24 05:47:26
【问题描述】:

我有一个表格,它是日期和时间的列表。例如

日期

1/3/2014 6:16:43.570 AM
1/3/2014 6:17:02.300 AM
1/3/2014 6:23:09.700 AM
1/6/2014 6:02:09.993 AM
1/6/2014 6:02:34.323 AM
1/6/2014 6:03:02.957 AM
1/6/2014 6:08:48.867 AM
1/6/2014 6:09:04.917 AM

我想结束的是:

1/3/2014 6:23:09.700 AM
1/6/2014 6:09:04.917 AM

因为这些是每个日期的最近时间。

任何帮助将不胜感激。

【问题讨论】:

    标签: sql rapidsql


    【解决方案1】:
    SELECT MAX(datetime)
    FROM Dates
    GROUP BY DATE(datetime)
    

    【讨论】:

    • 所以我假设 datetime 是包含所有日期的列的列名,而“Dates”是表名。但是,我收到 DATE 不是内置函数名称的错误。如果这很重要,我正在使用 Embarcadero Rapid SQL 7.6.4。
    • 是的,这很重要。我的答案是针对 MySQL 的。 DATE 接受一个日期时间并返回它的日期部分。您必须在您的 DBMS 中找到等效的功能,我不熟悉它。
    • 感谢您到目前为止的帮助
    • 请将您的问题标记为 Rapid SQL。
    【解决方案2】:

    您可以使用分组依据或行号。这是向您展示另一种方法的行号。 (因为其他人已经通过示例展示了该组)

    SELECT d
    FROM
    (
       SELECT d,
              row_number() OVER (PARTITION BY convert(date,d) ORDER BY d DESC) as rownum
       FROM Dates
    ) t
    WHERE rownum = 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      相关资源
      最近更新 更多