Mysql查询年的第多少周 - Go语言中文社区

Mysql查询年的第多少周


%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用

参考:MySQL DATE_FORMAT() 函数 http://www.w3school.com.cn/sql/func_date_format.asp

SQL如下,方法1:

select CURRENT_DATE() -- 2019-01-09

select  DATE_FORMAT(CURRENT_DATE(),'%x_%v') -- 2019_02

select  DATE_FORMAT('2019-01-06','%x_%v')  -- 2019_01
select  DATE_FORMAT('2018-12-31','%x_%v') -- 2019_01
select  DATE_FORMAT('2018-12-30','%x_%v') -- 2018_52

比如每周一往table1同步上周数据,table1只保留dt过去最近10周的数据,dt的格式是2018_52表示2018年第52周
delete from table1 where dt < DATE_FORMAT(DATE_SUB( CURRENT_DATE(),INTERVAL 10 WEEK),'%x_%v')
or dt = DATE_FORMAT(DATE_SUB( CURRENT_DATE(),INTERVAL 1 WEEK),'%x_%v')

select  DATE_FORMAT(DATE_SUB( CURRENT_DATE(),INTERVAL 10 WEEK),'%x_%v') -- 2018_44

select  DATE_FORMAT(DATE_SUB( CURRENT_DATE(),INTERVAL 1 WEEK),'%x_%v')  -- 2019_01

方法2:

参考:https://bee1314.iteye.com/blog/1143995

-- 指定mode 是1,周一是每周第一天
select YEARWEEK(CURRENT_DATE(),1) -- 201902
select YEARWEEK('2019-01-06',1) -- 201901
select YEARWEEK('2018-12-31',1) -- 201901
select YEARWEEK('2018-12-30',1) -- 201852

-- mode 默认是0,周日是每周第一天
select YEARWEEK('2018-12-30') -- 201852
select YEARWEEK('2018-12-31') -- 201852
select YEARWEEK('2019-01-01') -- 201852
select YEARWEEK('2019-01-05') -- 201852
select YEARWEEK('2019-01-06') -- 201901
select YEARWEEK('2019-01-13') -- 201902

end

mysql version:5.6.38-log

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u010002184/article/details/86181189
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-04-19 10:13:37
  • 阅读 ( 852 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢