我有关于between和join表的问题。 我的代码如下:
SELECT t_submissions.badge_id,
t_submissions.employee_name,
t_submissions.dept_name,
t_submissions.ot_date,
t_submissions.ot_from,
t_submissions.ot_to,
t_submissions.remarks,
t_submissions.submission_by,
t_acknowledged.acknowledge_by,
t_approved.approval_by
FROM t_submissions,
t_acknowledged,
t_approved
WHERE ot_date BETWEEN '01-Mar-2012' AND '30-Mar-2012'
AND t_submissions.submission_no = t_acknowledged.submission_no
AND t_submissions.submission_no = t_approved.submission_no;
当我尝试编译此代码时,数据的日期为2012年3月1日至2012年3月30日。日期为2012年6月1日,2012年7月2日的示例数据,显示。 好吧,我认为我的代码存在问题。需要你的建议。请帮忙。 : - )
答案 0 :(得分:0)
您需要将varchar转换为date,然后进行比较。这是一个类似的解决方案。
答案 1 :(得分:0)
正如我在评论中所说,您必须将日期字段的类型转换为date
。该比较仅适用于date
。这是你的代码。我试着美化它。
您还应该在日期中使用月份的数字表示。
SELECT ts.badge_id, ts.employee_name,
ts.dept_name, ts.ot_date,
ts.ot_from, ts.ot_to,
ts.remarks, ts.submission_by,
ta.acknowledge_by, tp.approval_by
FROM t_submissions AS ts, t_acknowledged AS ta, t_approved AS tp
WHERE ot_date BETWEEN '01-03-2012' AND '30-03-2012'
AND ts.submission_no = ta.submission_no
AND ts.submission_no = tp.submission_no;