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

SQL:Изваждане на 1 ден от дата на клеймо за време

Използвайте INTERVAL напишете го. Напр.:

--yesterday
SELECT NOW() - INTERVAL '1 DAY';

--Unrelated: PostgreSQL also supports some interesting shortcuts:
SELECT 
    'yesterday'::TIMESTAMP, 
    'tomorrow'::TIMESTAMP, 
    'allballs'::TIME AS aka_midnight;

Тогава можете да направите следното:

SELECT 
    org_id,
    count(accounts) AS COUNT,
    ((date_at) - INTERVAL '1 DAY') AS dateat
FROM 
    sourcetable
WHERE 
    date_at <= now() - INTERVAL '130 DAYS'
GROUP BY 
    org_id,
    dateat;

СЪВЕТИ

Съвет 1

Можете да добавите множество операнди. Например:как да получа последния ден от текущия месец?

SELECT date_trunc('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 DAY';

Съвет 2

Можете също да създадете интервал с помощта на make_interval функция, полезна, когато трябва да я създадете по време на изпълнение (без използване на литерали):

SELECT make_interval(days => 10 + 2);
SELECT make_interval(days => 1, hours => 2);
SELECT make_interval(0, 1, 0, 5, 0, 0, 0.0);

Повече информация:

Функции и оператори за дата/час

datatype-datetime (Специални стойности) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да направя INTERSECT с помощта на Eloquent Builder, без да имам колекция

  2. Опитах се да променя postgresql md5 на scram-sha-256 и получавам ФАТАЛНА грешка при удостоверяване на паролата

  3. Postgis - Как да работите с тип данни "география" чрез JDBC

  4. Изчислете сумата на колоната за време в PostgreSql

  5. Как да инсталирате PostgreSQL 12 на Ubuntu 20.04 DigitalOcean