Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 确定日期的月份是否在日期的四分之一_Mysql_Sql_Date - Fatal编程技术网

Mysql 确定日期的月份是否在日期的四分之一

Mysql 确定日期的月份是否在日期的四分之一,mysql,sql,date,Mysql,Sql,Date,我需要编写一些SQL来确定当前月份是否基于指定日期的季度 如果我给它“2015-04-09”,函数应该确定该月是等于1、4、7还是10。如果我给它'2015-05-09',它将是2,5,8,11。等等 如果整个解决方案都包含在SELECT语句中,则效果最好。我不太确定如何处理这个问题,我也找不到任何适合我的情况的东西。我不在乎日期或年份,我只需要验证月份。您可以使用month()提取月份,然后使用模运算。大概是这样的: select (case when mod(month($input) -

我需要编写一些SQL来确定当前月份是否基于指定日期的季度

如果我给它“2015-04-09”,函数应该确定该月是等于1、4、7还是10。如果我给它'2015-05-09',它将是2,5,8,11。等等


如果整个解决方案都包含在SELECT语句中,则效果最好。我不太确定如何处理这个问题,我也找不到任何适合我的情况的东西。我不在乎日期或年份,我只需要验证月份。

您可以使用
month()
提取月份,然后使用模运算。大概是这样的:

select (case when mod(month($input) - month($thedate), 3) = 0 then 1
             else 0
        end)

看起来您想知道此表达式何时为真:

(mod(EXTRACT(MONTH FROM SYSDATE()), 3)) = (mod(EXTRACT(MONTH FROM <input date>), 3))
(mod(EXTRACT(MONTH FROM SYSDATE()),3))=(mod(EXTRACT(MONTH FROM)),3))

如果您有一个季度编号,并且希望获得季度的起始月份:

QuarterNo * 3 - 2
如果要获取季度号,请给定月份号:

floor((MonthNo-1) /3) +1
如果您有“日期”列,并且需要季度号,请使用:

DATEPART(qurter, date_column)  

我不明白你的要求…@MaciejLos,quarter函数返回给定日期的季度,这不是我要找的。谢谢,我不知道它被称为“模”算术,我一直认为它被称为模算术,结果是模。