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

Nomor minggu kustom PostgreSQL - minggu pertama berisi 1 Februari

date_trunc() terpotong ke Senin sebelumnya . Anda masih dapat menggunakannya dengan menambahkan 2 hari ke input (selisih antara Sab dan Sen), lalu kurangi 2 hari dari output. Bekerja dengan sempurna.

Kueri ini menghasilkan keluaran yang Anda inginkan tepat :

SELECT d::date                     AS "Calendar_Date"
     , EXTRACT('WEEK' FROM d)::int AS "Week_No"
     , to_char(d, 'Dy')            AS "WeekDay_No"
     , base_nr + (rn::int - 1) / 7 AS "Customized_Week_No"
FROM  (
   SELECT date_trunc('week', feb3) - interval '2 days' AS day1 -- subtract 2 days
        , EXTRACT('year' FROM feb3)::int * 100 + 1     AS base_nr
   FROM  (SELECT timestamp '2015-02-03') input(feb3)           -- add 2 days, so Feb 3 (!)
   ) t, generate_series (day1
                       , day1 + interval '1 year - 1 day' 
                       , interval '1 day') WITH ORDINALITY AS d(d, rn);

Cukup berikan 3 Februari di tahun yang bersangkutan:timestamp '2015-02-03' .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. impor file csv pada tipe numerik postgres

  2. PILIH atau MASUKKAN satu baris dalam satu perintah

  3. Cara menggunakan fungsi jendela SQL untuk menghitung persentase agregat

  4. Cara Mengatur Koneksi Jarak Jauh ke PostgreSQL

  5. Buat json dengan nilai kolom sebagai kunci objek