bingo

The way to my programmer


记一笔postgresql在时间计算上的方法。

  1. 计算时间差
    date_part() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
    ```
    select now()

2018-02-01 15:49:15

select date_part(‘year’,now())

2018

select date_part(‘day’,now())

1

  1. 因此,可以通过date_part计算两个时间相差几天,几分钟,几秒钟等。

select date_part(‘day’,’2018-01-31 15:49:15’::timestamp-‘2018-01-10 10:12:15’::timestamp)

21

  1. 2. 时间加减

时间加减两天(同理,可以加减几个月,几分等等)

select now()-interval ‘2 day’

2018-01-30 16:04:05

select now()+interval ‘2 day’

2018-02-03 16:04:05

  1. 3. 计算本周第一天,本月第一天 :date_trunc
  2. >说明:DATE_TRUNC 函数根据您指定的日期部分(如小时、周或月)截断时间戳表达式或文本。DATE_TRUNC 返回指定的年的第一天、指定的月的第一天或指定的周的星期一。

select date_trunc(‘month’,now())

2018-02-01 00:00:00

select date_trunc(‘week’,now())

2018-01-29 00:00:00

  1. 在计算最近几个月,最近几天,最近几个星期的数据时用到
  2. 例如:求最近3个月创建的销售量

select sum(sales) sales from t_sale where create_time>date_trunc(‘week’,now()-interval ‘2 mon’)

```

时间单位:
year :年
week :该天在所在的年份里是第几周
timezone_minute:时区偏移量的分钟部分
timezone_hour:时区偏移量的小时部分
timezone:与UTC的时区偏移量,以秒记。正数对应 UTC 东边的时区,负数对应 UTC 西边的时区
second :秒
quarter:日期中年所在季度(1-4)
month:月(0-11)
minute:分钟(0-59)
milliseconds:
isodow:周中的第几天 [1-7] 星期一:1) 星期天:(7)
dow:周中天的索引(0-6 ;星期天是 0)
doy:一年的第几天(1-365/366)
hour:小时(0-23)
day: 天(1-31)



持续集成jenkins+github springboot pageHelper 分页异常