查询如下所示: month.ty 的数据类型是文本
month.ty LIKE '%2024%'
我正在努力让它获得一年,而不必在年底时更改它。就像获取当前年份一样。
我尝试过加上特殊字符:
month.ty LIKE '%' + YEAR(current_timestamp) + '%'
这样,无论我在加号字符中输入什么内容,它都会弹出错误。 错误是:警告:#1292 截断不正确的 DOUBLE 值:'%'
还有这样的:
month.ty LIKE YEAR(CURRENT_TIMESTAMP)
在这种情况下它什么也不返回。但这很可能,因为它不进行比较,因为没有通配符“%”。
还有这样的:
month.ty LIKE '%' + CAST(year(CURRENT_TIMESTAMP) AS varchar) + '%'
在这种情况下,它会抛出错误 #1064 - 您的 SQL 语法有错误;
还尝试过:
month.ty LIKE '%' + YEAR(GETDATE()) + '%'
抛出错误 #1558 - mysql.proc 的列计数错误。预期为 21,发现为 20。使用 MariaDB 100108 创建,现在运行 100421。请使用 mysql_upgrade 修复此错误
我不确定我是否遗漏了某些东西,或者是否有其他方法可以使其工作。 XAMPP版本是8.1.6-0 / 服务器版本:10.4.21-MariaDB
正如评论中提到的,不建议以文本格式保存日期。相反,请始终使用日期或时间戳类型。
字符串连接可以使用
CONCAT()
而不是 +
来完成,如下所示:
WHERE month.ty LIKE CONCAT('%', YEAR(current_timestamp), '%')