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

Jak získat včerejší datum v PostgreSQL

Problém:

Chcete zobrazit včerejší datum (bez času) v databázi PostgreSQL.

Řešení 1:

SELECT current_date - INTEGER '1' AS yesterday_date;

Za předpokladu, že dnes je 24. 9. 2020, výsledek je:

yesterday_date
23.09.2020

Diskuse:

Chcete-li získat včerejší datum, musíte odečíst jeden den od dnešního data. Použijte current_date získat dnešní datum. Všimněte si, že na konci current_date nepotřebujete závorky funkce. V PostgreSQL můžete odečíst nebo přidat libovolný počet dní pomocí INTEGER klíčové slovo. Zde, protože potřebujete odečíst jeden den, použijete - INTEGER '1' získat včerejší datum. Všimněte si, že výsledek tohoto výpočtu má stále typ sloupce date .

Řešení 2:

SELECT (current_date - INTERVAL '1 day')::date AS yesterday_date;

Za předpokladu, že dnes je 24. 9. 2020, výsledek je:

yesterday_date
23.09.2020

Diskuse:

Získejte dnešní datum pomocí current_date . Od aktuálního data musíte odečíst interval jednoho dne. K tomu použijte INTERVAL klíčové slovo, které vytvoří libovolný časový a datumový interval, jaký chcete (zde '1 day' , což je v PostgreSQL stejné jako 24 hodin). Odečítání INTERVAL '1 day' od dnešního data bude mít za následek sloupec formátovaný jako časové razítko, takže jej musíte přenést na date . Nejrychlejší způsob, jak toho dosáhnout v PostgreSQL, je připojení ::date na celý výraz (nezapomeňte uzavřít výraz do závorek).

Stejně snadno se samozřejmě můžete vrátit o jakýkoli časový interval. Zde je příklad:

SELECT (current_date - INTERVAL '3 months 10 days')::date;

INTERVAL lze také přidat na rande. Pokud tedy chcete získat zítřejší datum, zde je způsob:

SELECT (current_date + INTERVAL '1 day')::date AS tomorrow_date;

  1. Vložit při duplicitní aktualizaci v PostgreSQL?

  2. Jak mohu použít mySQL replace() k nahrazení řetězců ve více záznamech?

  3. K získání informací o serveru v SQL Server použijte SERVERPROPERTY().

  4. Spusťte dávkový soubor pomocí příkazu psql bez hesla