mysql 去年同星期_MySQL的昨天,上周,上个月和去年的结果

bd96500e110b49cbb3cd949968f18be7.png

my datefield (artists.onlineDate) is yyy-mm-dd hh:mm:ss

right now I got:

-- Today

SELECT * FROM artists WHERE DATE(artists.onlineDate) = CURDATE()

-- Current Week

SELECT * FROM artists WHERE WEEK(artists.onlineDate, 3) = WEEK(CURDATE(), 3)

-- Current Month

SELECT * FROM artists WHERE MONTH(artists.onlineDate) = MONTH(CURDATE())

-- Current Year

SELECT * FROM artists WHERE YEAR(artists.onlineDate) = YEAR(CURDATE())

But what I need is exact: Yesterday, Last Week, Last Month, Last Year

I try to explain. if we got wednesday, and I use SELECT * FROM artists WHERE DATE(artists.onlineDate) = CURDATE(), then I get monday to wednesday.

I would like to have the monday to sunday of the last week. the calendar week before.

And the same for the month and year.

I thins SUB_DATE is not the right way.

Any suggestions?

解决方案

OK I found what I was looking for at:

SELECT * FROM testwoche

WHERE WEEK (datum, 3) = WEEK(current_date, 3) - 1

AND YEAR(datum) = YEAR(current_date) ORDER BY datum DESC

same for month

SELECT * FROM testwoche

WHERE month (datum) = month(current_date) - 1

AND YEAR(datum) = YEAR(current_date)

ORDER BY datum DESC

This gives back the last week from monday to sunday and the last month

Thanks everybody for helping!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值