【问题标题】:Is there a function that allows me to use the weeknumber in a MySql Query?是否有允许我在 MySql 查询中使用星期数的功能?
【发布时间】:2019-03-23 01:58:34
【问题描述】:

我想根据周数在 MySql 中执行查询。我找到的函数 ('WEEK()') 为我提供了某个日期的周数。但是,我想使用周数作为日期范围,如下所示:

SELECT * 
FROM x
WHERE price > 1
AND start_date_column between (start week 41 and end week 41)

有谁知道我可以用来完成此任务的功能吗?

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

    还有WeekofYear() 功能。它以 1 到 53 范围内的数字形式返回日期的日历周。在此函数中,星期日被视为一周的开始日。例如:

    SELECT WeekofYear('2018-10-18'); -- returns 42
    

    您可以使用上述功能执行以下操作:

    SELECT * 
    FROM x
    WHERE price > 1
    AND WeekofYear(start_date) =  41
    

    即使Week() 函数也可以以类似的方式工作:

    SELECT * 
    FROM x
    WHERE price > 1
    AND Week(start_date) =  41
    

    【讨论】:

    • 但是输入应该是周数,而不是日期。
    • AND WeekofYear(start_date) between (41 and 41) 像这样使用它时出现错误。
    • @nemja 如果开始周数和结束周数值相同,则不需要使用between。请检查更新答案
    • 有效!谢谢。
    • 请非常小心,仅使用“week()”检查您的条件。至少也包括 Year() (这样你就不会得到去年的误报等)
    猜你喜欢
    • 1970-01-01
    • 2011-08-28
    • 2018-03-31
    • 2011-03-31
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    相关资源
    最近更新 更多