精华内容
下载资源
问答
  • Postgre SQL 取个月日期,一年的每个月一号,月末日期

    Postgre SQL 连取一个月日期,一年的每个月一号,月末日期

    取一个完整月日期

    select generate_series(date_trunc('month',sysdate)::date,--起始日期
    date_trunc('month',sysdate)::date +'1 month -1 d'::interval,--结束日期
    '1 d'::interval--步调
    )::date dayid
    查询结果
    dayid
    2020-09-01
    2020-09-02
    2020-09-03
    2020-09-04
    2020-09-05
    2020-09-06
    2020-09-07
    2020-09-08
    2020-09-09
    2020-09-10
    2020-09-11
    2020-09-12
    2020-09-13
    2020-09-14
    2020-09-15
    2020-09-16
    2020-09-17
    2020-09-18
    2020-09-19
    2020-09-20
    2020-09-21
    2020-09-22
    2020-09-23
    2020-09-24
    2020-09-25
    2020-09-26
    2020-09-27
    2020-09-28
    2020-09-29
    2020-09-30

    取一年的完整月份

    当前年份1-12月

    取每月第一天日期

    --
    select mon::date 
    from generate_series(date_trunc('year',sysdate)::date,--开始日期  
    date_trunc('year', sysdate)::date + '1y -1mon'::interval,--结束日期   
     '1 months'::interval-- step 位移步调  1 months 代表往后推一个月
     ) mon
    ;
    
    2020-01-01
    2020-02-01
    2020-03-01
    2020-04-01
    2020-05-01
    2020-06-01
    2020-07-01
    2020-08-01
    2020-09-01
    2020-10-01
    2020-11-01
    2020-12-01

    取每月最后一天日期

    select last_day(mon)::date 
    from generate_series(date_trunc('year',sysdate)::date,--开始日期  
    date_trunc('year', sysdate)::date + '1y -1mon'::interval,--结束日期   
     '1 months'::interval-- step 位移步调  1 months 代表往后推一个月
     ) mon
    ;
    2020-01-31
    2020-02-29
    2020-03-31
    2020-04-30
    2020-05-31
    2020-06-30
    2020-07-31
    2020-08-31
    2020-09-30
    2020-10-31
    2020-11-30
    2020-12-31

    从当前月份倒推12个月

    取当前月份往前推12个月,每个月第一天

    select mon::date 
    from generate_series(date_trunc('month',sysdate)::date,--开始日期  date_trunc('month', now())::date 是当前月份第一天
    date_trunc('month', sysdate)::date+ '-1y +1mon'::interval,--结束日期   '-1y +1mon' 代表往前推一年,然后再往后加一个月
     '-1 months'::interval-- step 位移步调  -1 months 代表往后倒推一个月
     ) mon
    ;
    
    2020-09-01
    2020-08-01
    2020-07-01
    2020-06-01
    2020-05-01
    2020-04-01
    2020-03-01
    2020-02-01
    2020-01-01
    2019-12-01
    2019-11-01
    2019-10-01

    取当前月份往前推12个月,每个月最后一天

    select last_day(mon)::date 
    from generate_series(date_trunc('month',sysdate)::date,--开始日期  date_trunc('month', now())::date 是当前月份第一天
    date_trunc('month', sysdate)::date+ '-1y +1mon'::interval,--结束日期   '-1y +1mon' 代表往前推一年,然后再往后加一个月
     '-1 months'::interval-- step 位移步调  -1 months 代表往后倒推一个月
     ) mon
    ;
    2020-09-30
    2020-08-31
    2020-07-31
    2020-06-30
    2020-05-31
    2020-04-30
    2020-03-31
    2020-02-29
    2020-01-31
    2019-12-31
    2019-11-30
    2019-10-31

    主要使用 postgresql序列生成函数,生成连续日期,再进行查询

    函数 参数类型 返回类型 描述
    generate_series(start,stop) int或bigint setof int或setof bigint(与参数类型相同)) 生成一个数值序列,从start到stop,步长为1 。
    generate_series(start,stop,step) int或bigint setof int或setof bigint(与参数类型相同)) 生成一个数值序列,从start到stop,步长为step。
    generate_series(start,stop,step) timestamp或timestamp with time zone setof timestamp或setof timestamp with time zone(与参数类型相同) 生成一个数值序列,从start到stop,步长为step。

    理解generate_series这个函数,很多小问题将迎刃而解。

    展开全文
  • python中获取上月一号的方法 业务场景: 我们经常会跑一些月级别或者周级别的报表。 周级别的报表还比较好确定,就是七天前的直接用timedelta(days=7)来获取开始日期就可以了; 但是月级别的...

    业务场景:

    我们经常会跑一些月级别或者周级别的报表。

    周级别的报表还比较好确定,就是七天前的直接用timedelta(days=7)来获取开始日期就可以了;

    但是月级别的报表就要麻烦一些,因为timedelta这个函数没有month这个参数,那我们怎么来获取一个月前的一号呢,还要考虑到这个月有多少天,会不会跨年,之类的...

    我今天想到了一个简单的办法,分享给大家

    有了这个办法,就不用再去判断闰年那些很麻烦的逻辑了

    如果大家发现这个算法有什么问题可以指出来,共同学习

     

     1 from datetime import date
     2 from datetime import timedelta
     3 
     4 def get_last_month_first_day(date):
     5     date_terminal = 26 + date.day
     6     res_date = date - timedelta(days=date_terminal)
     7     while 1:
     8         if res_date.day == 1:
     9             break
    10         else:
    11             res_date -= timedelta(days=1)
    12     return res_date
    13 
    14 
    15 if __name__ == '__main__':
    16     test_date_a = date(2016, 9,3)
    17     test_date_b = date(2016, 10, 1)
    18     test_date_c = date(2016, 2, 28)
    19     test_date_d = date(2016, 1, 1)
    20     print map(get_last_month_first_day, [
    21         test_date_a, test_date_b, test_date_c, test_date_d])

     

    ----------------2017-07-16-------------------------

    现在再看这道题,我又有了新的办法,对比之前的写法不知道好了多少

    def get_last_month_first_day_v2(d):
        return datetime.date(d.year - (d.month==1), d.month - 1 or 12, 1)
    posted on 2016-10-10 03:24 symons 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/symons1992/p/5944445.html

    展开全文
  • 为什么计算机起始时间是1970年1月1日

    万次阅读 多人点赞 2018-08-09 13:57:58
    1969年8,贝尔实验室的程序员肯汤普逊利用妻儿离开的机会,开始着手创造个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的个版本。随后,汤普逊和同事丹尼斯里奇改进了B语言...

    1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。随后,汤普逊和同事丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX,新版于1971年发布。

    那时的计算机操作系统是32位,时间用32位有符号数表示,则可表示 68 年,
    用32位无符号数表示,可表示136年。

    32位能表示的最大值是2147483647,另外1年365天的总秒数是31536000,
    2147483647/31536000
    68.1

    也就是说32位能表示的最长时间是68年,而实际上到2038年01月19日03时14分07
    秒,便会到达最大时间,过了这个时间点,所有32位操作系统时间便会变为
    10000000000000000000000000000000
    也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。

    到这里,我想问题的答案己经出来了:

    因为用32位来表示时间的最大间隔是68年,而最早出现的UN以操作系统考虑到计算
    机产生的年代和应用的时限综合取了1970年1月1日作为UNTIME的纪元时间(开始
    时间)
    至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作
    系统可以表示到292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间己经是千亿年以后了。

    在这里插入图片描述
    时间来到了292,277,026,596年
    未来的某程序员甲:为什么计算机表示只能到这个时间292,277,026,596?
    未来的某程序员乙:因为在292,277,026,596年前,那个时候的人们觉得这个时候地球应该已经没了吧!

    展开全文
  • 今天是一月十九

    千次阅读 2007-01-19 08:18:00
    今天是一月十九 
    今天是一月十九日 
    展开全文
  • 日期组装 (如:2020年1月1日、二〇二〇年一月一日、1/1/2020)
  • //本周一,w为星期几的数字形式,这里0为周日 echo date('Y-m-d', (time() - ((date('w'... 7 : date('w')) - 1) * 24 * 3600))."\r\n"; //本周日,同样使用w,以现在与周日相关天数算 echo date('Y-m-d', (time() ...
  • C语言 两种方法优化:输入个日期的年、,计算并输出这天是该年的第几天。
  • "星期" ); break ; case 2 : Console.WriteLine( "星期二" ); break ; case 3 : Console.WriteLine( "星期三" ); break ; case 4 : Console.WriteLine( "星期四" ); break ; case 5 : ...
  • 假设某年的1月1日是星期,问:这年中的第x天,是星期几? 要求: 1)保证x的范围是1~365,否则输出错误信息 2)使用switch语句import java.util.*; class DateClass { public static void main(String ...
  • #include <stdio.h> // 判断是否是闰年 int is_leap_year(int year) { return (year % 4 == 0 &&...// 给定年份和月份,获得这个有多少天 int get_days (int year, int month) { ...
  • //从公元元年一月一日是星期一开始计算 //用类实现求万年历的算法 #include #include #include using namespace std; class Calendar { private: int month; int date; string Day[7];//char Day...
  • Visual Studio 中用job设置个定时任务每年六月一号执行次 更改数据库数据操作。 大佬们有没有好的方案推荐一下。
  • 例如1900年1月1日 到 2010年11月18 的总天数为 40498 已知 40498 如何计算出1900年1月1日后的40498天是2010年11月18呢? 注:用java来实现
  • @Scheduled(cron =”0 0 0 1 * ?”) //@Scheduled注解为定时任务,cron表达式里写执行的时机 public void dateDeletion(){ dateDeletionDao.dateDeletion(); System.out.println(“删除成功”); } } ...
  • java 日期获取,每月一号,每周 package info.lumanman.h5.util; import java.text.SimpleDateFormat; import java.util.Calendar; pu...
  • oracle 取某一年1月1日的多种方法

    千次阅读 2018-04-02 15:24:38
    取某个年的1月1号注意: to_date('2018-3-28','yyyy-mm-dd') 可以是 数据库表里的某个字段,根据需求自行调整1. extract()函数 加 to_date规范select to_date(extract (year from to_date('2018-3-28','yyyy-mm...
  • 这是计算天的SQL 脚本:   SELECT DATEADD(mm, DATEDIFF(mm,0,...SELECT DATEADD(mm, DATEDIFF(mm,0,getdate())-1, 0) --上个的第天 SELECT DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate
  • #include void main() { int y,m,d,n; int a[13],i,sum1,sum2,sum; scanf("%d%d%d",&y,&m,&d); sum1=0;sum2=d;sum=0; for(i=1900;i { if(i%4==0&&i%100!=0||i%400==0) n=366;...sum1=su
  • 最近笔者在开发个报表功能时,客户要求报表生成的时间可以自己制定,也就是说我们系统需要提供个或两个日期的文件框(如果是日报表就个,如果是周或或年报表就需要两个)给客户自己填写。除此之外,客户还...
  • 这是计算天的SQL 脚本:  SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) --当月的第天 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate())-1, 0) --上个的第
  • 如果你在苹果智能语音助手 Siri 里面提问:什么时候是世界末日呢?怕是会得到个令人感慨和有爱的回答:Unix 32位计算器的末日可能是在 2038年1月19发生,或...
  • 做一个统计费用的项目,需要在每一月取得相同的日期。用calendar.add(Calendar.Month,1)的方法。 问题就来了,假如第一个月有31天,第二个月不足31天,加上一月后是自动调整到第二个月的最后一天,还是顺延到下一个...
  • python如何获取个时间点的前和后,网上虽然有很多教程,但是本人感觉太杂了而且不太好用,研究一番之后决定提供...import calendartime = datetime.date(2017, 7, 20) #年,#求该天 first_
  • 种方法 基姆拉尔森计算公式: 基姆拉尔森计算公式 W = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) mod 7 http://baike.baidu.com/view/739374.htm #include using namespace std; void ...
  • JS 获取当前年--及当月一号

    千次阅读 2019-07-24 17:51:29
    // 补零函数 function doHandleZero(zero) { var date = zero; if (zero.toString().length == 1) { date = "0" + zero; } return date;...// 获取每个月一号 function getDate() { var myDate = ...
  • 根据下列信息计算在1901年1月1日至2000年12月31间共有多少个星期天落在每月的第天上? a) 1900.1.1是星期 b) 1月,3月,5月,7月,8月,10月和12月是31天 c) 4月,6月,9月和11月是30天 d) 2月是28天,在...
  • //获取上个的时间 返回(今天2019-05-20)返回 2019-04-20 timeStr := time.Now().AddDate(0, -1, 0).Format(“2006-01-02”) //获取下个的时间 返回(今天2019-05-20)返回 2019-06-20 timeStr := time.Now()....
  • namespace Messages { public class TextMessage { public string Text { get; set; } } }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,500,996
精华内容 600,398
关键字:

一月一号是