Sql 查找给定两列(名称和日期)的最小日期
我在MS SQL中有一个表,有两列名称和日期,如下所示 名称 日期 A. 1/1/2020 A. 2/1/2020 A. B 1/1/2020 B 2/1/2020 C 1/1/2020 C 2/1/2020 CSql 查找给定两列(名称和日期)的最小日期,sql,sql-server,Sql,Sql Server,我在MS SQL中有一个表,有两列名称和日期,如下所示 名称 日期 A. 1/1/2020 A. 2/1/2020 A. B 1/1/2020 B 2/1/2020 C 1/1/2020 C 2/1/2020 C 我怀疑您正在将日期存储为字符串 也许是这样的 SELECT name, MIN(try_convert(date,[date])) FROM dbo.T Where try_convert(date,[date]) is not null GROUP BY name 您的代码符合您的
我怀疑您正在将日期存储为字符串 也许是这样的
SELECT name, MIN(try_convert(date,[date]))
FROM dbo.T
Where try_convert(date,[date]) is not null
GROUP BY name
您的代码符合您的要求。对于此示例数据,它不会返回最小日期的“空白”值,这会使您的问题不清楚。空白还是空?如果为空,那么您的日期是否存储为字符串而不是日期?最好重新设计此类存储,因为基本上您无法说出什么是
1/2/2020
:它是2020-01-02
还是2020-02-01
。您永远不会发现错误转换或插入的日期。@astentx毫无疑问,但这可能不是一个选项。这可能是OP接收数据的方式。这些年来,我不得不消耗一些可怕的数据。是的,模棱两可的日期是我最讨厌的,但我确实假设了M/D/Y。如果不是,设置日期格式DMY将是一件小事。