我的表格中有date_time
列。
如何获取本周开始的日期,即2011-01-09 13:44:00
将返回2011-01-07 00:00:00
的日期?
我查看了MySQL Date functions,但无法弄清楚如何做到这一点。
我尝试过这样的事情......
DATE_ADD( YEAR( NOW( ) ) , INTERVAL WEEK( NOW( ) ) WEEK ) AS `start_of_week`
但我得到的只是NULL
。
我该怎么做?
答案 0 :(得分:1)
If you don't mind converting to Date first (from DateTime)
DATE_ADD(mydate, INTERVAL(1-DAYOFWEEK(mydate)) DAY)
另外,STR_TO_DATE函数is a possibility。将您的年份和星期连接在一起,然后是您想要的字符串日期格式,然后可以将其转换为日期时间。
SELECT STR_TO_DATE('201003 Monday', '%X%V %W');
答案 1 :(得分:1)
SELECT DATE_ADD( DATE( NOW() ) , INTERVAL -WEEKDAY( NOW() ) DAY ) AS `start_of_week`
这将返回2011-05-30,如果您的一周的第一天是星期一,那将会很好,否则您应该再减去一天。
我不确定您使用周/年