如何解决如何从星期几和星期几获得前一年
我在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 举报,一经查实,本站将立刻删除。