sql比较字符串,比的到底是什么?
sql里有nvarchar类型的日期数据time1:2019-10-09 00:00:00,
现给定string类型日期time2:2019-10-01 23:59:59,比较两个日期的大小,
发现可以直接进行比较,也就是select * from a where time1<time2,不满足条件,
修改一下time2:2019-10-1 23:59:59,再来比较,又满足条件了,
原因是字符串做比较时,是直接对它的ASCII码进行逐一比较,
在比较time2:2019-10-01 23:59:59时,比较到第10位的时候,9>1就出结果了;
在比较time2:2019-10-1 23:59:59时,比较到第9位的时候,0<1就出结果了;
所以比较字符类型的日期数据时一定要保持格式一致,或者先转换再比较