【发布时间】:2010-12-16 16:47:39
【问题描述】:
Oracle 的表服务器提供了一个内置函数TRUNC(timestamp,'DY')。此函数将任何时间戳转换为上周日的午夜。在 MySQL 中执行此操作的最佳方法是什么?
Oracle 还提供TRUNC(timestamp,'MM') 将时间戳转换为该月第一天的午夜。在 MySQL 中,这很简单:
TIMESTAMP(DATE_FORMAT(timestamp, '%Y-%m-01'))
但是这个DATE_FORMAT 技巧在几周内都行不通。我知道WEEK(timestamp) 函数,但我真的不想要一年内的周数;这东西适合多年工作。
【问题讨论】:
-
你的意思是 trunc(sysdate,'W'),而不是 trunc(sysdate,'DY')
-
TRUNC(date, 'DY' )获得星期天开始的几周。'W'周一开始,至少在我的系统中。
标签: mysql datetime group-by data-migration dayofweek