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

标签 php mysql mysqli

我有两个表,即 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/

相关文章:

mysql - SQL - 根据 YTD 数字计算出 MTD 数字

php - 将 imagepng 保存到 MySQL 数据库

php - 存储单个 IP、IP 范围、IP block 和 IP 类别并快速搜索它们的最佳方式

MySQL:@@ 是什么意思?

php - 将 PHP LDAP 结果插入 MySQL

PHP 通知 : Trying to get property of non-object

php - 使用 mode_proxy_wstunnel 获取客户端 IP

php - 使用 php 修剪或转换 mysql 日期字段

php - mysql中的三个表之间的连接

php - 自定义函数从 mysql 查询中检索结果然后显示