为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: dm8
【操作系统】: win 11
【CPU】: 锐龙 5800h
【问题描述】*:
SELECT
a.crop_id,
a.land_id,
a.plant_status,
crop.crop_category_id,
crop.crop_group_id
FROM
tbl_plant_plan_agri a
INNER JOIN sys_crop crop
WHERE
a.crop_id = crop.id
AND a.plant_status != 3
AND date_format(now(),
'%y-%m-%d') >= date_format(a.plant_start_date,
'%y-%m-%d')
执行报错。但
SELECT
a.crop_id,
a.land_id,
a.plant_status,
crop.crop_category_id,
crop.crop_group_id
FROM
tbl_plant_plan_agri a
INNER JOIN sys_crop crop on true
WHERE
a.crop_id = crop.id
AND a.plant_status != 3
AND date_format(now(),
'%y-%m-%d') >= date_format(a.plant_start_date,
'%y-%m-%d')
执行成功。有什么数据库库参数能兼容前一种写法吗?前一个语句在 mysql 中可以正常执行
INNER JOIN 换成 分隔符 ,
数据库兼容性参数COMPATIBLE_MODE设置为4,兼容mysql试下。 建议还是不要采用这种特别的mysql写法,换成通用sql写法更好。
mysql这种写法不符合SQL标准,建议改写一下