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就出结果了;

所以比较字符类型的日期数据时一定要保持格式一致,或者先转换再比较

 

posted @ 2019-10-25 17:06  TenFly  阅读(3612)  评论(0编辑  收藏  举报