繁体   English   中英

在新年12到2之间按月选择记录

[英]Select record by month between 12 and 2 of new Year

我有这个记录:

[id | dateofit ]
[ 1 | 2017-12-1]

我要使用此查询选择的内容:

SELECT id FROM records WHERE MONTH(dateofit) BETWEEN 12 AND 2

问题是12来自20172来自2018 ,所以我没有任何结果,

我试图像这样在MONTH(dateofit) BETWEEN MONTH(12) AND MONTH(1)替换MONTH(dateofit) BETWEEN MONTH(12) AND MONTH(1)的查询MONTH(dateofit) BETWEEN MONTH(12) AND MONTH(1)但是仍然存在相同的问题

我要选择的记录是[12,1(newyear),2(newyear)]

为什么不只提供时间范围?

SELECT id FROM records WHERE dateofit BETWEEN "2017-12-01 00:00:00" AND "2018-03-01 23:59:59";

以下是两种可能的方法:如果您仅拥有2017年3月至2018年11月的数据:

SELECT
    id
FROM
    records
WHERE
    MONTH(dateofit) IN (12, 1, 2)

如果您有数年的数据:

SELECT
    id
FROM
    records
WHERE
    dateofit BETWEEN '2017-12-01' AND '2018-02-28'

尝试这个:

SELECT id FROM records 
WHERE ( YEAR(dateofit) = 2017 AND MONTH(dateofit) = 12) OR 
      ( YEAR(dateofit) = 2018 AND MONTH(dateofit) IN (1, 2));

暂无
暂无

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

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