sql >> Databáze >  >> RDS >> PostgreSQL

SQL klonování a převod sloupce data

Pomohlo by vám to?

Toto používá vestavěné formátování data ve funkci TO_CHAR. Nejsem úplně doma s postgresql tho', takže možná bude potřeba provést nějaké úpravy.

UPDATE
    TABLENAME
SET
    year = TO_CHAR(date, 'YYYY'),
    date = TO_CHAR(date, 'YYYYMM');

Pokud sloupec "rok" ještě neexistuje, budete jej muset vytvořit pomocí ALTER TABLE nejprve prohlášení

ALTER TABLE [table_name] ADD COLUMN [column_name] [data_type] {collation} {column_contstraint};

Doporučuji zkontrolovat dokumentaci pro správné použití.

EDIT:Pokud se obáváte času, který by trvala aktualizace všech řádků (viděl jsem, že jste komentovali jinou odpověď, že jste měli kolem 2 milionů záznamů), doporučuji přečíst tento příspěvek .

Vysvětluje, že může být rychlejší vytvořit tabulku od začátku s daty namísto aktualizace každého řádku.



  1. Oracle:Parametrizovaný dotaz s klauzulí IN vrací hodnotu null

  2. Dotaz MySQL s chybou duplicitního zadání 1062

  3. mysql získá rozdíl místo SUM

  4. aktuální_časové razítko nastavit pouze při vložení nového řádku