gpt4 book ai didi

php - 如何使用内部联接从两个日期之间的数据库中获取数据?

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:44 24 4
gpt4 key购买 nike

我有两个表,即 jobscompany 格式如下:

表 1 作业

company_name    job_title            category       job_posted_date
============ ================= =========== ===============
ibm xamarin developer it jobs 26-09-2018
tech mahindra php developer it jobs 27-09-2018
milkyway java developer it jobs 15-08-2018

表2 公司

company_name    company_logo         
============ ============
ibm logo_ibm.png
tech mahindra logo_tech.png
milkyway logo_milkyway.png

我的查询是:

SELECT company.company_logo, post_jobs.company_name, jobs.job_title, jobs.job_posted_date 
FROM company
INNER JOIN jobs
on jobs.company_name = company.company_name
WHERE jobs.category = 'it Jobs' and (jobs.job_posted_date between '01-09-2018' and '01-10-2018')
ORDER BY jobs.job_posted_date desc

当我点击此查询并找到 01-09-201801-10-2018 之间的数据时,它没有显示两个日期之间的数据。那么我该如何解决这个问题呢?请帮助我。

谢谢

最佳答案

我发现您的 job_posted_date 列有问题。也许您正在那里存储文本日期。假设不是,并且它是一个真正的日期列,您可以尝试这个查询:

SELECT
c.company_logo,
j.company_name,
j.job_title,
j.job_posted_date
FROM company c
INNER JOIN jobs j
ON j.company_name = c.company_name
WHERE
j.category = 'it Jobs' AND
j.job_posted_date BETWEEN '2018-09-01' AND '2018-10-01'
ORDER BY
j.job_posted_date DESC;

请注意,我比较的是有效的 MySQL 日期文字,例如 '2018-09-01'。您使用的格式无效。

如果 job_posted_date 列实际上是以 DD-MM-YYYY 格式记录文本 日期,那么您必须使用STR_TO_DATE 首先转换它们:

SELECT
c.company_logo,
j.company_name,
j.job_title,
j.job_posted_date
FROM company c
INNER JOIN jobs j
ON j.company_name = c.company_name
WHERE
j.category = 'it Jobs' AND
STR_TO_DATE(j.job_posted_date, '%d-%m-%Y') BETWEEN '2018-09-01' AND '2018-10-01'
ORDER BY
j.job_posted_date DESC;

这个故事的寓意是在 MySQL 中存储日期信息时始终使用正确的日期列。并始终将有效的日期/时间文字与这些列进行比较。

关于php - 如何使用内部联接从两个日期之间的数据库中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52585376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com