这应该是一个简单的问题,但我仍然无法得到一些有效的结果。 我正在使用Workbench。 我试图从当前日期开始的最后一个季度。
当我查询当前季度时,我得到了正确答案:
SELECT quarter(curdate());
1
但是当我想要上一季度时:
SELECT (quarter(curdate())-1);
我仍然得到1。
我也尝试过(在线发现):
SELECT LAST_QTR(curdate());
但我明白了:
Error code: 1305. FUNCTION LAST_QTR does not exist
有人可以帮忙解决这个问题吗?提前谢谢。
答案 0 :(得分:3)
试试这个,看看这是否适合你。
SELECT quarter(curdate() - INTERVAL 1 QUARTER);
答案 1 :(得分:1)
试试这个:
SELECT IF((QUARTER(curdate())-1) = 0, 4, QUARTER(curdate()) - 1) as last_quarter
如果季度大于1,则返回当前季度 - 1。否则,如果当前季度为1则返回4.
答案 2 :(得分:1)
获取上个季度的结束日期
SELECT CASE WHEN QUARTER(curdate()) = 1
THEN MAKEDATE(YEAR(CURDATE() - INTERVAL 1 YEAR), 1) + INTERVAL 4 QUARTER - INTERVAL 1 DAY
ELSE MAKEDATE(YEAR(CURDATE()),1)+ INTERVAL QUARTER(CURDATE()) - 1 QUARTER - INTERVAL 1 DAY END
将Curdate()
替换为您需要的date
答案 3 :(得分:0)
这是在MySql或WordPress中获取所有上一个/最后一个季度记录的方法。
注意:visited
是表中的日期时间列
"SELECT * FROM tbl_users WHERE QUARTER(visited) = QUARTER(curdate() - INTERVAL 1 quarter)"