mysql - 如何从星期几和星期中获取上一年
问题描述
我有函数从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, '%U') as w,
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'),
date_format(current_date, '%w'),
year(current_date) - 1),
'%U %w %Y')
但请注意,有些年份有 53 周,而有些年份则没有。如果您在一年的第 53 周运行此查询,则不会得到有效结果。
推荐阅读
- java - java中的减法循环
- pytorch - pytorch 中用于 lena 图像的 fft(移位)
- java - Java 创建队列
- google-bigquery - BigQuery - 由于架构不平坦,无法保存结果
- c# - 过程或函数指定了太多参数但仍可正常运行
- python - 在 pgmpy 的 map_query 中查找单次出现的概率
- python-3.x - 异步 websocket 需要等待
- html - 光滑的滑块轮播 - 如何在加载活动图像后刷新或设置当前幻灯片高度
- kubernetes - dpdk-devbind 在 pod 容器中执行失败
- vuejs3 - 通过 Vue 3 上的自定义指令更改或添加属性值