微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从星期几和星期几获得前一年

如何解决如何从星期几和星期几获得前一年

我在MysqL中具有从当前日期获取星期几和星期几的功能 看起来像。

select 
   DATE_FORMAT(Now(),'%U') as w,DATE_FORMAT(Now(),'%w') as day_of_w;

返回w为37,day_of_week为1。如何获取正确的值w为37,day_of_week为上一年的1。

我正在使用

select 
   DATE_FORMAT(Now() interval 1 year,DATE_FORMAT(Now() interval 1 year,'%w') as day_of_w; 

但是sql无法执行。

解决方法

将字符串转换为日期的函数是STR_TO_DATE。如果您想获取2019年第1天的第37周的日期,可以使用

select str_to_date('37 1 2019','%U %w %Y')

如果要使用去年的今天的星期几和日期,请输入日期:

select str_to_date(concat_ws(' ',date_format(current_date,'%U'),'%w'),year(current_date) - 1),'%U %w %Y')

但是请注意,有些年份有53周,而另一些则没有。如果您在一年的第53周内运行此查询,则不会得到有效的结果。

,
select DAYOFWEEK(now()) day_of_week,week(now()) week from dual

您的查询有语法问题。您忘记了+/-符号

select DATE_FORMAT(now() + interval 1 year,'%U') as w,DATE_FORMAT(now() + interval 1 year,'%w') as day_of_w; 
,

您只需要使用DATE_ADD中的MYSQL函数将日期更改为去年。

select DATE_FORMAT(DATE_ADD(now(),INTERVAL -1 YEAR),DATE_FORMAT(DATE_ADD(now(),'%w') as day_of_w;

结果:

36  6

当前和去年的日期:

select now() as curr_yr_date,DATE_ADD(now(),INTERVAL -1 YEAR) as last_yr_date;

结果:

2020-09-14 07:13:24 2019-09-14 07:13:24

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。