繁体   English   中英

如何比较日期(年,月)和日期(日,月,年)

[英]How to compare date(year, month) with date(day, month, year)

我有一个sql命令,我想检查日期(年,月)是否在日期(天,月,年)和日期(天,月,年)之间。 以下是我的SQL命令:

SELECT *
FROM paytran
WHERE
    (StaffID BETWEEN '01' AND '01')
    AND STR_TO_DATE('01/04/2016', '%d/%m/%Y') BETWEEN STR_TO_DATE(DateFrom, '%d/%m/%Y') AND STR_TO_DATE(DateTo, '%d/%m/%Y')
    AND SubGroup = '1'
    AND Week1 = '1'
    AND PaymentMonth = STR_TO_DATE('2016/04', '%Y%m') BETWEEN STR_TO_DATE('01/03/2016', '%d/%m/%Y') AND STR_TO_DATE('31/12/2016', '%d/%m/%Y')
    AND FO = 'F'

MySQL没有给出错误,但结果不应为空。

SELECT * FROM TABLE_NAME
WHERE DATE_FORMAT(date, "%Y-%m") BETWEEN '2013-01' AND '2014-12';

https://stackoverflow.com/a/17541196/3155780

嗯,这个版本似乎更简单:

SELECT *
FROM paytran
WHERE StaffID LIKE '01%' AND
      '2016-04-01' BETWEEN DateFrom AND DateTo AND
       SubGroup = '1' AND
       Week1 = '1' AND
       DATE_FORMAT(PaymentMonth, '%Y%m') BETWEEN '201604' and '201612' AND
       FO = 'F';

通常,您不需要将日期转换为字符串即可进行比较。 如果需要日期,则将自动转换YYYY-MM-DD格式的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM