怎么将一列日期推算出对应的周六并输入到另一列中

现有一列 DATE 数据为日期加时间,如:2018-01-01 15:00:30

现在希望将DATE列中的日期推算出对应的周六并按顺序输入到WEEKEND这列中,只要日期不要时间应该如何写SQL语句?

如何改变下面的语句或者应如何写?
select subdate(curdate(),date_format(curdate(),'%w')-6)

阅读 2k
3 个回答

mysql日期操作函数了解下

DATE_FORMAT(DATE_ADD(`date`, INTERVAL 6-DATE_FORMAT(`date`,'%w') DAY), '%Y-%m-%d')

如果需要当今天是周六时存下周六日期的话,interval中间部分加个if即可。

可以尝试下使用以下sql,但是数据库不适合做这种运算。

UPDATE table_name SET WEEKEND = subdate(date_format(`DATE`,'%Y-%m-%d'),date_format(`DATE`,'%w')-6)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题