【发布时间】:2018-07-03 12:46:29
【问题描述】:
我正在尝试返回包含日期年份的记录,让我解释一下,这是我的查询:
$query = "SELECT coach.*
FROM coach_career coach_cr
LEFT JOIN coach coach ON coach.id = coach_cr.coach_id
LEFT JOIN competition_seasons s ON s.id = :season_id
WHERE coach_cr.team_id = 95 AND `start` LIKE '%2017/2018%'";
我需要选择coach_career上的所有coach字段,一个coach可以在不同的seasons中训练不同的团队,所以我需要接受具有season.name值2017/2018的教练,但 start 日期的日期时间格式如下:2017-01-01
我该如何处理这种情况?
样本数据
教练:
id | name | last_name
1 foo test
教练生涯:
coach_id | team_id | start | end
1 95 2017-01-01 NULL
competition_seasons
id | name |
1 2017/2018
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。
-
@GordonLinoff 检查我的更新
-
如果
start是日期,则使用start >= '2017-01-01' AND start < '2019-01-01' -
@SalmanA 问题不是开始字段,问题是 s.name 不是日期并且包含 2017/2018
-
如果你使用
'2017/2018' like '%' + convert(varchar(10), datepart(year, [start])) + '%'而不是[start] like '%2017/2018%'会解决你的问题吗?