postgresql根据周和年计算周对应的时间段
查询本周星期一的时间
方法一:
SELECT current_date +cast(-1*(TO_NUMBER(to_char(DATE (current_date),'D'),'99')-2) ||' days' as interval)
解析:
TO_NUMBER 将一个字符串转换成数字
格式:TO_NUMBER(string,format)
-- 一周里的日子(1-7;周日是1)
select to_char(CURRENT_DATE ,'D')
DDD 一年里的日子(001-366)
DD 一个月里的日子(01-31)
D 一周里的日子(1-7;周日是1)
-- 将得到的字符串转换成数字
select TO_NUMBER(to_char(CURRENT_DATE,'D'),'99')
-- 因为得到的星期一为2,所以要减去2
select TO_NUMBER(to_char(CURRENT_DATE,'D'),'99')-2
-- 将得到的数字乘以 -1 比如例子中:-1*3 就是 -3 ,也就是减去 3天
select cast(-1*3 || 'days' as interval)
-- 就是将当天减去0天 得到了星期一的日期
select cast(-1*0 || 'days' as interval) + CURRENT_DATE
SELECT to_char(CURRENT_DATE +cast(-1*(TO_NUMBER(to_char(CURRENT_DATE,'D'),'99')-2) ||' days' as interval),'yyyy-mm-dd');
方法二:
select to_char('2019-09-27'::date - ( case when EXTRACT(DOW FROM TIMESTAMP '2019-09-27') = 0 then 6
when EXTRACT(DOW FROM TIMESTAMP '2019-09-27') = 1 then 0
else EXTRACT(DOW FROM TIMESTAMP '2019-09-27') -1
end )::integer,'yyyy-mm-dd') as 星期一日期
,to_char('2019-09-27'::date + ( case when EXTRACT(DOW FROM TIMESTAMP '2019-09-27') = 0 then 0
else 7- EXTRACT(DOW FROM TIMESTAMP '2019-09-27')
end )::integer,'yyyy-mm-dd') 星期日日期
获取某时间是星期几
select extract(DOW FROM cast('2019-04-23' as TIMESTAMP))
根据年份和周数计算所在周的时间段
select to_char(cast(-1*(TO_NUMBER(to_char(to_date('2019'||'-01-01','yyyy-mm-dd'),'D'),'99')-2)|| 'days' as interval) + to_date('2019'||'-01-01','yyyy-mm-dd'),'yyyy-mm-dd') 在2019年1月1日所属星期的星期一日期
, to_char(to_date(cast(-1*(TO_NUMBER(to_char(to_date('2019'||'-01-01','yyyy-mm-dd'),'D'),'99')-2)|| 'days' as interval) + to_date('2019'||'-01-01','yyyy-mm-dd'),'yyyy-mm-dd')
+cast(38*7|| 'days' as interval),'yyyy-mm-dd') 第38周的开始时间
, to_char(to_date(cast(-1*(TO_NUMBER(to_char(to_date('2019'||'-01-01','yyyy-mm-dd'),'D'),'99')-2)|| 'days' as interval) + to_date('2019'||'-01-01','yyyy-mm-dd'),'yyyy-mm-dd')
+cast(38*7+6|| 'days' as interval),'yyyy-mm-dd') 第38周的结束时间
postgresql根据周和年计算周对应的时间段相关推荐
- java日期加减秒_Java日期——年、月、日、时、分、秒、周加减计算
Java日期--年.月.日.时.分.秒.周加减计算 Java日期--年.月.日.时.分.秒.周加减计算 1.Pom依赖 joda-time joda-time 2.9.9 2.示例代码 package ...
- 根据输入的日期计算周次和月份
需求: 1.根据输入的日期拆分成按周或按月显示 2.规定周的开始日期从星期一开始,星期日结束 3.不足7天的一周,如果小于2天,则合并到上周或下周:大于2天的则自成一周 代码: CREATE OR R ...
- java表格计算,JAVA表格两日期间月,周,日计算
JAVA报表两日期间月,周,日计算 //计算天数 public List day(String dates, String datee) throws ParseException { List da ...
- 根据日期计算属于第几周(周日是一周的第一天)
根据 日期计算属于第几周,见代码,重点是红色加粗代码,如果日期是下一年的第一周的时候的解决方案,如果谁有更好的方法,请不吝赐教 /** * 根据日期计算属于第几周(周日是一周的第一天) * ...
- mysql的week函数与JAVA计算周的差别问题
转载:mysql的week函数与JAVA计算周的差别问题_cwfreebird的博客-CSDN博客 今天遇到此问题,记录下解决办法.转载. 原获取周方法: public static String g ...
- .Net 根据年份计算周次和起止日期
1.根据年份计算周次 public class WeekDisPlay{public int WeekNumber { get; set; }public string WeekSort { get; ...
- sql 计算周环比wow_通过对周进行编号计算周环比(WOW)
上周我们分享了如何在Power Pivot中对月份进行编号,今天我们和大家一起看一下如何通过对周进行编号,来计算周环比(WOW). 先来看一下我们的示例模型: 模型由销售记录表和日期表组成,我们已经创 ...
- java 计算周_java – Joda时间周计算推理
下面的代码演示了星期计算的有问题的joda-time实现.这种行为不是错误,而是设计决策 Joda-Time uses the ISO standard Monday to Sunday week.( ...
- java 排除法定节假日以及正常周六日,计算两个Date相差的小时数
项目组有一个需求,计算两个Date类型参数,相差的小时数.业务上有一些特殊的用途,可能用于绩效考核的目的吧- 如果不排除节假日周六日的话,处理起来非常easy,是个程序员都能写出来,但是-如果要排除法 ...
最新文章
- 某大厂程序员哀叹:千万不要从大厂往小厂跳,后悔死了!小厂只会逼迫压榨,刚来就一个劲要产出!...
- python编程难吗-Python、C+这些编程语言难吗?十岁女孩告诉你答案
- kill Signal
- nRF5 SDK for Mesh(一) 介绍和下载源码
- spoj 8222 Substrings (后缀自动机)
- 【解题报告】Leecode 859. 亲密字符串——Leecode每日一题系列
- poj 1502 MAPMaelstrom 单源最短路dijkstra
- spring-注解实现入门
- Daydream -区间技巧
- 【互联网公司面试评价表】
- 去除WINRAR的广告
- 初学者上手python建模
- 上海房屋租赁合同登记备案证明办理流程
- 语雀小记初长成:碎片化信息记录工具
- python数据分析基础技术篇_HTML5小游戏---爱心鱼(上)
- 【汇编】微机原理与接口技术课程设计
- 关于DDK中的编译知识 .
- 前向差分、后向差分和中心差分误差分析
- 【源码课件+名师讲解】Java优质课程分享
- 06-jQuery的文档操作***