Oracle的表服务器提供了一个内置功能TRUNC(timestamp,'DY')。此功能将任何时间戳转换为前一个星期日的午夜。在MySQL中执行此操作的最佳方法是什么?
Oracle还提供TRUNC(timestamp,'MM')将时间戳转换为发生该月的第一天的午夜。在MySQL中,这很简单:
TIMESTAMP(DATE_FORMAT(timestamp, '%Y-%m-01')) 但是这个DATE_FORMAT技巧将在数周内失效。我知道此WEEK(timestamp)功能,但是我真的不想要一年内的星期数。这些东西是用于多年的工作。
您可以同时使用YEAR(timestamp)和和WEEK(timestamp),并在SELECT和GROUP BY子句中使用这两个表达式。
不太优雅,但功能...
当然,您也可以将这两个日期部分组合为一个表达式,例如
SELECT CONCAT(YEAR(timestamp), '/', WEEK(timestamp)), etc... FROM ... WHERE .. GROUP BY CONCAT(YEAR(timestamp), '/', WEEK(timestamp))来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。