我需要找到每月的第一个星期日。尝试使用next_day函数产生了适当的结果,但是如果一个月的第一天是星期日,那么它将不起作用。
import tkinter as tk
from threading import Thread
import time
class SomeFunc:
def __init__(self):
self.running=True
t = Thread(target=self.func)
t.start()
def func(self):
self.root = tk.Tk()
self.root.update_idletasks()
#root.attributes('-fullscreen', True)
#root.overrideredirect(1)
canvas = tk.Canvas(self.root, width=self.root.winfo_width(), height=self.root.winfo_height())
#canvas.create_image(0, 0, image=output, anchor="nw")
canvas.pack(fill=tk.BOTH, expand=1)
while self.running:
self.root.update()
a = SomeFunc()
x = 10
while x:
x-=1
time.sleep(1)
print(x)
我正在运行日期为select next_day(trunc(sysdate,'MM'),'sun') first_sun
from dual
select next_day(trunc(sysdate,'MM'),'sun') first_sun
from dual
的查询,该日期显示的是第二个星期日而不是第一个星期日。
答案 0 :(得分:2)
截断后只需回溯一天,因此您可以找到上个月最后一天之后的第一个星期日:
select next_day(trunc(sysdate,'MM') - 1,'sun') first_sun from dual;
FIRST_SUN
----------
2019-09-01
答案 1 :(得分:2)
您碰巧在一个月的第一天也就是这个月的第一天登陆
NEXT_DAY使用的是晚于日期,因此您必须从例如前一天开始检查
select next_day(trunc(sysdate,'MM')-1,'SUNDAY') first_sun from dual;
NEXT_DAY返回由char命名的第一个工作日的日期,该日期晚于日期。