在MySQL中给定一个日期,我如何确定一周的相对开始时间



我的表中有一个date_time列。

如何获得本周开始的日期,即2011-01-09 13:44:00返回2011-01-07 00:00:00的日期?

我看过MySQL的Date函数,但没能弄清楚怎么做

我试过这样的东西。。。

DATE_ADD( YEAR( NOW( ) ) , INTERVAL WEEK( NOW( ) ) WEEK ) AS `start_of_week` 

但我得到的只是NULL

我该怎么做?

如果您不介意先转换为Date(从DateTime)

DATE_ADD(mydate, INTERVAL(1-DAYOFWEEK(mydate)) DAY)

此外,STR_TO_DATE函数也是可能的。将你的年和周连接在一起,然后输入你想要的字符串日期格式,然后可以将其转换为日期时间。

SELECT STR_TO_DATE('201003 Monday', '%X%V %W');
SELECT DATE_ADD( DATE( NOW() ) , INTERVAL -WEEKDAY( NOW() ) DAY ) AS `start_of_week` 

这将返回2011-05-30,所以如果你一周的第一天是星期一,那就太好了,否则你应该再减去一天。

我不确定您每周/每年使用的是什么

相关内容

  • 没有找到相关文章

最新更新