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值
    image.png
    因为日期类型改成整x型为null,应该用cast(date_format(max_come_time, ‘yyyyMMdd’) as int),先用date_format(max_come_time, ‘yyyyMMdd’)把日期转化成yyyyMMdd格式。
    image.png

    三. 语句用法
    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