两个查询:一个查询最新的日期,一个查询最旧的日期?

时间:2019-04-24 07:24:14

标签: sql sql-server date max min

我认为这是一个非常简单的问题。我想通过SQL查询获取最近的日期和最早的日期。 Datefield看起来像这样:24.04.2019 如果我尝试使用MinMax函数获取最近和最旧的日期,则它不起作用,因为它只是查看Day。所以01.01.1800小于31.03.2019

TableA

------------------------------
| A   | B  | C  | Date        |
------------------------------
| 1   | 2  | 3  | 13.02.2017  |
| 2   | 3  | 7  | 15.06.1985  |
| 3   | 3  | 4  | 14.04.2001  |
| 3   | 9  | 8  | 13.01.1789  |
-------------------------------

从上述样本数据中得出的预期结果如下

-------------------------------
| Recent Date  | Oldest Date  |
-------------------------------
| 13.02.2017   | 13.01.1789   |
-------------------------------

2 个答案:

答案 0 :(得分:1)

您必须使用CONVERT将字符串转换为日期类型:

SELECT 
    MIN(CONVERT(DATE, column_name, 104)) AS minDate, 
    MAX(CONVERT(DATE, column_name, 104)) AS maxDate
FROM table_name

您不应使用字符串类型将日期值存储在列中。改用DATEDATETIME2

demo on dbfiddle.uk

答案 1 :(得分:0)

enter image description here

SP_names