mysql 事件每月31日_每周MySQL的事件,但每个月只有第一周?(MySQL event weekly but only first week every month?)...

每周MySQL的事件,但每个月只有第一周?(MySQL event weekly but only first week every month?)

我需要每周(每个月的第一个星期五)举办一场活动,而除了本月的第一个星期五以外,每周五还要举办一场活动。 我所能想到的就是类似的东西

IF WEEKDAY()=4 AND DAYOFMONTH() BETWEEN 1 AND 7 THEN ....

IF WEEKDAY()=4 AND DAYOFMONTH() BETWEEN 8 AND 31 THEN ....

但是有没有更好的/更整洁的查询?

I need to run an event weekly (every 1st Friday of the month) and another event every Friday other than the first Friday of the month. All I could think of was something like

IF WEEKDAY()=4 AND DAYOFMONTH() BETWEEN 1 AND 7 THEN ....

and

IF WEEKDAY()=4 AND DAYOFMONTH() BETWEEN 8 AND 31 THEN ....

But is there a better/more neat query that?

原文:https://stackoverflow.com/questions/50665797

2020-01-13 15:59

满意答案

SET @x := '2018-06-01';

SELECT CASE WHEN WEEKDAY(@x) = 4

THEN CASE WHEN DAYOFMONTH(@x) < 8

THEN 'FIRST FRIDAY'

ELSE 'SOME OTHER FRIDAY' END

ELSE 'NOT FRIDAY' END x;

+--------------+

| x |

+--------------+

| FIRST FRIDAY |

+--------------+

SET @x := '2018-06-08';

SELECT CASE WHEN WEEKDAY(@x) = 4

THEN CASE WHEN DAYOFMONTH(@x) < 8

THEN 'FIRST FRIDAY'

ELSE 'SOME OTHER FRIDAY' END

ELSE 'NOT FRIDAY' END x;

+-------------------+

| x |

+-------------------+

| SOME OTHER FRIDAY |

+-------------------+

SET @x := '2018-06-07';

SELECT CASE WHEN WEEKDAY(@x) = 4

THEN CASE WHEN DAYOFMONTH(@x) < 8

THEN 'FIRST FRIDAY'

ELSE 'SOME OTHER FRIDAY' END

ELSE 'NOT FRIDAY' END x;

+------------+

| x |

+------------+

| NOT FRIDAY |

+------------+

SET @x := '2018-06-01';

SELECT CASE WHEN WEEKDAY(@x) = 4

THEN CASE WHEN DAYOFMONTH(@x) < 8

THEN 'FIRST FRIDAY'

ELSE 'SOME OTHER FRIDAY' END

ELSE 'NOT FRIDAY' END x;

+--------------+

| x |

+--------------+

| FIRST FRIDAY |

+--------------+

SET @x := '2018-06-08';

SELECT CASE WHEN WEEKDAY(@x) = 4

THEN CASE WHEN DAYOFMONTH(@x) < 8

THEN 'FIRST FRIDAY'

ELSE 'SOME OTHER FRIDAY' END

ELSE 'NOT FRIDAY' END x;

+-------------------+

| x |

+-------------------+

| SOME OTHER FRIDAY |

+-------------------+

SET @x := '2018-06-07';

SELECT CASE WHEN WEEKDAY(@x) = 4

THEN CASE WHEN DAYOFMONTH(@x) < 8

THEN 'FIRST FRIDAY'

ELSE 'SOME OTHER FRIDAY' END

ELSE 'NOT FRIDAY' END x;

+------------+

| x |

+------------+

| NOT FRIDAY |

+------------+

2018-06-03

相关问答

你必须改变这条线 $last_month_days_to_add_to_last_month_end = $blank++;

至 $last_month_days_to_add_to_last_month_end = $blank;

You have to change the line $last_month_days_to_add_to_last_month_end = $blank++;

to $last_month_days_to_add_to_last_month_end = $b...

使用lubridate您可以使用isoweek来定义周列。 library(lubridate)

df[, wk := isoweek(date)]

哪个给你 # date weekday COMP week RET wk

# 1: 1981-01-02 Friday 1 1 -0.005435 1

# 2: 1981-01-05 Monday 1 1 0.040984 2

# 3: 1981-01-06 T...

这里有一个简单的函数,它会告诉你今天是否在本月的第一周: from datetime import date

def first_week():

today = date.today()

return today.weekday() - today.day >= -1

这比处理呼叫到日历库的输出更简单; 只需以星期几的数字形式(从0开始),然后减去月份的日期(从1开始)。 如果结果至少为-1,则表示您处于第一周。 Here's a simple function which w...

从本月的第一天开始,递增直到你得到你想要的那一周的那一天然后增加7倍n-1,其中n是你想要的那个月的第n天。 public static DateTime(int year, int month, DayOfWeek weekDay, int nth)

{

DateTime result = new DateTime(year, month, 1);

while(result.DatOfWeek != weekDay)

result = result.AddDays...

这个怎么样: 添加两列: weeklyDateFrom , weeklyDateTo ,存储从星期一0:00开始的分钟数。 例如, 2016-10-01 13:00是Sat. 13:00 Sat. 13:00 ,你只需将它存储为7560 ,因为5day + 6h = 126h = 7560min 。 然后2016-10-01 15:00是7720 。 当你想搜索10-08 12:00 ~ 16:00 : 10-08 12:00 ~ 16:00 : 10-08 12:00 ~ 16:00 ,只需: ...

您可以使用以下查询获取范围: DECLARE @date date = '2016-07-08'--sample date

DECLARE @firstDay date = DATEADD(M, DATEDIFF(M, 0, @date), 0)

SELECT CASE DATEPART(DW, @firstDay)

WHEN 1 THEN DATEADD(D, 1, @firstDay)

ELSE @firstDay END D1,

DATEADD(D...

SET @x := '2018-06-01';

SELECT CASE WHEN WEEKDAY(@x) = 4

THEN CASE WHEN DAYOFMONTH(@x) < 8

THEN 'FIRST FRIDAY'

ELSE 'SOME OTHER FRIDAY' END

ELSE 'NOT FRIDAY' END x;

+------------...

你可以玩WEEK()函数,看看它是否适合你的需求。 在这里,我使用WEEK(date, 3) ,将从星期一开始将本周的一周返回从1到53。 set @my_date = '2015-09-13';

SELECT

WEEK(@my_date, 3) -

WEEK(@my_date - INTERVAL DAY(@my_date)-1 DAY, 3) + 1

AS week_number;

WEEK(date, 3)将返回所选日期的年份的星期 WEEK(date - INTERVAL ...

使用下面的公式。 它看起来很难看,但它应该像你的例子一样工作。 例如,如果A1是2016年5月1日,A2是2016年5月7日,则单元格B1和B2应分别填充为2016年4月3日和2016年4月9日(星期日是一周的第一天) )。 =DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)+IF(WEEKDAY(A1-DAY(A1)+1)=1,8,WEEKDAY(A1-DAY(A1)+1))-WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,1),1))

下面是它的工作原理...

我没有看到使用标准模板语言的方法,但你可以制作一个非常简单的插件来帮助你。 你的选择: 加载本周条目的块标记。 条件标记为true,此日历周与条目周相同。 (所以你可以在日历标签里面使用它) 为开始和结束时间戳设置变量的标记,因此您可以将它们与条目的时间进行比较。 祝你好运。 I don't see a way to do it using the standard template language, but you can probably make a very simple plugin ...

相关文章

storm事件管理器定义在event.clj中,主要功能就是通过独立线程执行"事件处理函数&

...

这篇文件写的非常好,推荐大家重温一下: http://highscalability.com/blog

...

A lot has happened since my first article on theSta

...

一.DisMax 1.tie:query and init param for tiebreaker

...

开发目的: 可链接微信公众号,无论是桌面端、移动端完美兼容,给用户提供不逊于原生App的用户体验。作为

...

转载一篇数据库查询的文章,包括查询距离当前现在6个月的数据,查询当前这周的数据,查询上周的数据,查询当

...

private function data2String():String{ if(data){

...

For gold bugs, the unthinkable has now happened. Th

...

作者:李丽媛 联系方式:lly219#gmail.com 日 期:2010-2-26 前言

...

作者:李丽媛 联系方式:lly219#gmail.com 日 期:2010-2-26 前言

...

最新问答

如果启用了复制处理程序,请确保将其置于其中一个安全角色之后。 我见过人们做的另一件事是在不同的端口上运行admin。 最好在需要auth的页面上使用SSL,这样你就不会发送明确的密码,因此管理和复制将发生在8443上,而常规查询将在8080上发生。 如果您要签署自己的证书,请查看此有用的SO页面: 如何在特定连接上使用不同的证书? I didn't know that /admin was the context for SOLR admin because /admin does not re

第一:在您的样本中,您有: 但是你在询问 //td[@class=‘CarMiniProfile-TableHeader’] (注意TableHeader中的大写'T')。 xpath区分大小写。 第二:通过查询// td [@ class ='CarMiniProfile-TableHeader'] / td,你暗示你在外部td中有一个'td'元素,而它们是兄弟姐妹。 有很多方法可以在这里获得制作和模型

这是你的答案: http://jsfiddle.net/gPsdk/40/ .preloader-container { position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: #FFFFFF; z-index: 5; opacity: 1; -webkit-transition: all 500ms ease-out;

问题是,在启用Outlook库引用的情况下, olMailItem是一个保留常量,我认为当您将Dim olMailItem as Outlook.MailItem ,这不是问题,但是尝试设置变量会导致问题。 以下是完整的解释: 您已将olMailItem声明为对象变量。 在赋值语句的右侧,在将其值设置为对象的实例之前,您将引用此Object 。 这基本上是一个递归错误,因为你有对象试图自己分配自己。 还有另一个潜在的错误,如果之前已经分配了olMailItem ,这个语句会引发另一个错误(可能是

我建议使用wireshark http://www.wireshark.org/通过记录(“捕获”)设备可以看到的网络流量副本来“监听”网络上发生的对话。 当您开始捕获时,数据量似乎过大,但如果您能够发现任何看起来像您的SOAP消息的片段(应该很容易发现),那么您可以通过右键单击并选择来快速过滤到该对话'关注TCP Stream'。 然后,您可以在弹出窗口中查看您编写的SOAP服务与Silverlight客户端之间的整个对话。 如果一切正常,请关闭弹出窗口。 作为一个额外的好处,wireshar

Android默认情况下不提供TextView的合理结果。 您可以使用以下库并实现适当的aligntment。 https://github.com/navabi/JustifiedTextView Android Does not provide Justified aligntment of TextView By default. You can use following library and achieve proper aligntment. https://github.com/

你的代码适合我: class apples { public static void main(String args[]) { System.out.println("Hello World!"); } } 我将它下载到c:\ temp \ apples.java。 以下是我编译和运行的方式: C:\temp>javac -cp . apples.java C:\temp>dir apples Volume in drive C is HP_PAV

12个十六进制数字(带前导0x)表示48位。 那是256 TB的虚拟地址空间。 在AMD64上阅读wiki(我假设你在上面,对吗?)架构http://en.wikipedia.org/wiki/X86-64 12 hex digits (with leading 0x) mean 48 bits. That is 256 TB of virtual address space. Read wiki on AMD64 (I assume that you are on it, right?) ar

这将取决于你想要的。 对象有两种属性:类属性和实例属性。 类属性 类属性对于类的每个实例都是相同的对象。 class MyClass: class_attribute = [] 这里已经为类定义了MyClass.class_attribute ,您可以使用它。 如果您创建MyClass实例,则每个实例都可以访问相同的class_attribute 。 实例属性 instance属性仅在创建实例时可用,并且对于类的每个实例都是唯一的。 您只能在实例上使用它们。 在方法__init__中定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值