PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL cara menggabungkan nilai interval '2 hari'

Sebagian dari masalahnya adalah bahwa ekspresi SQL standar untuk interval mengutip angka, tetapi bukan kata kunci. Jadi Anda harus berhati-hati.

select current_date, current_date + interval '2' day;
--
2012-02-21   2012-02-23 00:00:00

Di PostgreSQL, mengutip seperti '2 hari' dan '2 hari' juga berfungsi. Jadi kamu mungkin berpikir bahwa '2' || ' hari' akan setara, tetapi tidak.

select current_date, current_date + interval '2' || ' days';
--
2012-02-21   2012-02-21 00:00:02 days

Solusinya, seperti yang dikatakan A.H., adalah melemparkan string hasil sebagai interval.

Anda juga dapat menggunakan variabel sebagai pengganti 2. Ini menghasilkan kalender untuk tahun 2012.

-- 0 to 365 is 366 days; 2012 is a leap year.
select ('2012-01-01'::date + (n || ' days')::interval)::date calendar_date
from generate_series(0, 365) n;

Saya menggunakan pemeran terakhir itu hingga saat ini, karena tanggal + interval mengembalikan stempel waktu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana PostgreSQL menerapkan batasan UNIK / jenis indeks apa yang digunakannya?

  2. Bagaimana cara memutakhirkan database postgresql dari 10 menjadi 12 tanpa kehilangan data untuk proyek terbuka

  3. Bagaimana cara memasukkan catatan yang dapat diperbarui dengan kolom JSON di PostgreSQL menggunakan JOOQ?

  4. Pisahkan data kolom yang dipisahkan koma menjadi kolom tambahan

  5. ST_DWithin mengambil parameter sebagai derajat , bukan meter , mengapa?