PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да получите низ от начална и крайна дата на седмицата в PostgreSQL?

Можете да използвате date_trunc('week', ...) .

Например:

SELECT date_trunc('week', '2012-07-25 22:24:22'::timestamp);
-> 2012-07-23 00:00:00

След това можете да конвертирате това в дата, ако не се интересувате от начален час.

За да получите и крайната дата:

SELECT    date_trunc('week', '2012-07-25 22:24:22'::timestamp)::date
   || ' '
   || (date_trunc('week', '2012-07-25 22:24:22'::timestamp)+ '6 days'::interval)::date;

-> 2012-07-23 2012-07-29

(Използвах форматирането по подразбиране тук, можете, разбира се, да адаптирате това, за да използвате ММ/ДД/ГГГГ.)

Имайте предвид, че ако искате да правите сравнения на клеймото за време, вместо да използвате (date_trunc('week', ...) + '6 days'::interval , може да искате да добавите цяла седмица и да използвате строго сравнение за края на седмицата.

Това ще изключи y времеви клейма в последния ден от седмицата (тъй като крайният час е полунощ на деня).

    date_trunc('week', x)::date <= y::timestamp
AND y::timestamp <= (date_trunc('week', x) + '6 days'::interval)::date

Това ще ги включва:

    date_trunc('week', x)::date <= y::timestamp
AND y::timestamp < (date_trunc('week', x) + '1 week'::interval)

(Това е в редките случаи, когато не можете да използвате date_trunc на y директно.)

Ако седмицата ви започва в неделя, замествайки date_trunc('week', x)::date с date_trunc('week', x + '1 day'::interval)::date - '1 day'::interval трябва да работи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. низ срещу текст с помощта на Rails 3.2.* и Postgres - трябва ли винаги да използвам само текст

  2. Автоматизиране на барман с кукла:it2ndq/барман (първа част)

  3. Намерете най-близката точка в Pandas DataFrames

  4. Rails недефиниран метод за ActiveRecord_Associations_CollectionProxy

  5. Защо postgres не създава базата данни?