我的表中有一个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,所以如果你一周的第一天是星期一,那就太好了,否则你应该再减去一天。
我不确定您每周/每年使用的是什么