SELECT DISTINCT car_plate_num from ads_br_car_park
WHERE cast(max_come_time as int) like ‘%ymd%’
and ymd>=20210601
and ymd<=20210630
LIMIT 10
一.目的:是查询ads_br_car_park 表中 ymd日期等于max_come_time日期的记录,但是max_come_time的数据类型为string类型,ymd为int类型,不能直接比较。
二.这个sql有2个问题:
1.like是匹配一个字段里面的值,2个字段之间的匹配用等于就好了。
2.ast(max_come_time as int)是把这个字段变成int类型,但不会改变格式,改变后都是null值
因为日期类型改成整x型为null,应该用cast(date_format(max_come_time, ‘yyyyMMdd’) as int),先用date_format(max_come_time, ‘yyyyMMdd’)把日期转化成yyyyMMdd格式。
三. 语句用法
1.cast as https://www.w3school.com.cn/sql/func_date_format.asp
2.date_format https://www.w3school.com.cn/sql/func_date_format.asp
