当前位置: 首页 > 面试题库 >

如何在mysql中获取日期的一周的第一天?

汪鸿志
2023-03-14
问题内容

假设我有2011年1月3日,我想在一周的第一天,也就是星期天,那是2011年1月2日,我该怎么做?

原因是我有此查询:

select 
  YEAR(date_entered) as year, 
  date(date_entered) as week,   <-------This is what I want to change to select the first day of the week.
  SUM(1) as total_ncrs, 
  SUM(case when orgin = picked_up_at then 1 else 0 end) as ncrs_caught_at_station 
from sugarcrm2.ncr_ncr 
where 
sugarcrm2.ncr_ncr.date_entered > date('2011-01-01') 
and orgin in( 
'Silkscreen', 
'Brake', 
'Assembly', 
'Welding', 
'Machining', 
'2000W Laser', 
'Paint Booth 1', 
'Paint Prep', 
'Packaging', 
'PEM', 
'Deburr', 
'Laser ', 
'Paint Booth 2', 
'Toolpath' 
) 
and date_entered is not null 
and orgin is not null 
AND(grading = 'Minor' or grading = 'Major') 
 and week(date_entered) > week(current_timestamp) -20 
group by year, week(date_entered) 
order by year   asc, week asc

是的,我意识到起源拼写错误,但是在此之前我就在这里,因此由于太多内部应用程序引用了它,因此我无法对其进行更正。

因此,我按周分组,但我希望以此填充我的图表,所以我不能让所有的周初看起来都像不同的日期。我该如何解决?


问题答案:

如果您需要处理从星期一开始的几周,也可以这样做。首先定义一个自定义FIRST_DAY_OF_WEEK函数:

DELIMITER ;;
CREATE FUNCTION FIRST_DAY_OF_WEEK(day DATE)
RETURNS DATE DETERMINISTIC
BEGIN
  RETURN SUBDATE(day, WEEKDAY(day));
END;;
DELIMITER ;

然后您可以执行以下操作:

SELECT FIRST_DAY_OF_WEEK('2011-01-03');

仅供参考,MySQL提供了两种不同的功能来检索一周的第一天。有DAYOFWEEK:

返回日期的星期几索引(1 =星期日,2 =星期一,…,7 =星期六)。这些索引值对应于ODBC标准。

和WEEKDAY:

返回日期的星期几索引(0 =星期一,1 =星期二,…6 =星期日)。



 类似资料:
  • 问题内容: 我需要最快的方式来获得一周的第一天。例如:今天是11月11日,是星期四;我想要本周的第一天(即11月8日)和一个星期一。我需要用于MongoDB地图功能的最快方法,有什么想法吗? 问题答案: 使用Date对象的方法,您可以知道星期几(0 =星期日,1 =星期一,等等)。 然后,您可以减去该天数加一,例如:

  • 我正在尝试为我们的财务部门生成一些代码,他们需要一个字段,该字段将为他们提供一年中的当前一周,但以星期天为基础,这是一周的第一天。例如01-25-16(MM dd yyyy)将是第4周。然而,当我尝试使用和

  • 问题内容: 我想找到星期一,星期二,星期三等的日期戳。如果这个星期还未到这一天,我希望该日期为本周,否则为下周。谢谢! 问题答案: 看到 通过查看星期数,您可能会发现自己是否已经过了这一天:

  • 我的程序中有这5个按钮:星期一、星期二、星期三、星期四和星期五,它们在我的菜单屏幕上。我现在想要的是,当我的程序启动和我的菜单屏幕打开时,按钮包含的日子+一天的日期。 例如,今天我们是5月4日(星球大战快乐日!)按钮应该是这样的: 星期一04/30星期二05/01星期三05/02星期四05/03星期五05/04 但是当我打开下个星期一的菜单屏幕时,它应该是这样的:星期一05/07星期二05/08星

  • 问题内容: 我正在尝试获取本周星期一的日期。在我的表格视图中,这被视为一周的第一天。我还需要获取当前一周的星期日。在我的表格视图中,这被视为一周的最后一天。 当前尝试: 问题答案: 我写了Date扩展名以获取某个工作日的Date,这就是在Swift 5中使用它的简便性 这是日期扩展,

  • 问题内容: 我知道一年中的第几周,一个星期从星期日开始,然后是星期一,星期二…星期六。 既然我知道星期几,那么使用Java代码获取特定星期几的有效方法是什么? 问题答案: 如果您不希望使用外部库,只需使用日历。