标签: sql sql-server-2008
我使用下面的查询来查找最大日期,输出为“30-12-2017”,而输出应为“15-12-2018”。我附加了样本数据,数据类型为nvarchar和SQL Server 2008。
select MAX(date1) from tblMonth
答案 0 :(得分:3)
Date1的数据类型似乎是nvarchar。 MAX()上的nvarchar是字符串比较。字符串30-12-2017以30开头,在您的示例中具有最大的ASCII代码。如果您输入31-11-2017,则这将是MAX(date1)的结果。
nvarchar
MAX()
30-12-2017
30
31-11-2017
MAX(date1)
使用日期数据类型(即datetime2或date),它会按预期工作。
datetime2
date