我认为这是一个非常简单的问题。我想用SQL查询获取最近的日期和最早的日期。 Datefield
看起来像这样:24.04.2019
如果我试图通过Min
和Max
函数获得最近和最早的日期,它不起作用,因为它只是看一天。所以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 |
-------------------------------
您必须使用CONVERT
将字符串转换为日期类型:
SELECT
MIN(CONVERT(DATE, column_name, 104)) AS minDate,
MAX(CONVERT(DATE, column_name, 104)) AS maxDate
FROM table_name
不应使用字符串类型将日期值存储在列上。请改用DATE
或DATETIME2
。