SQLShack (Čeština)

Tento článek zkoumá funkci DATEADD SQL a její využití scénáře s různými příklady.

Obvykle pracujeme s datovým typem data na serveru SQL Server. Musíme také manipulovat s daty. V mém předchozím článku DATEPART SQL FUNCTION jsme zkoumali načíst konkrétní část od data, jako je den, rok, měsíc, čtvrtletí, den v roce.

Můžeme použít funkci SQL SERVER DATEADD k přidání nebo odečtení konkrétního období od a dává datum.

Syntax

DATEADD (datepart, number, date)

  • Datepart: Určuje část data, ve které chceme přidat nebo odečíst konkrétní časový interval. Může mít hodnoty jako rok, měsíc, den a týden. V tomto příkladu prozkoumáme více.
  • Číslo: Je to číslo, o které chceme zvýšit nebo snížit datum. Mělo by to být celé číslo
  • Datum: Zde můžeme určit datum. V tomto datu chceme přidat konkrétní číslo na datepart

Předpokládejme, že k aktuálnímu datu chceme přidat deset dní. V tomto příkladu by proměnné byly

  • Hodnota Datepart: Den
  • Číslo: 5
  • Datum: Getdate () – aktuální datum

Prozkoumejte funkci SQL SERVER DATEADD s příklady

Datové typy ve funkci SQL SERVER DATEADD

Ve výrazu data můžeme použít následující datový typ.

  • datum
  • DateTime
  • datetimeoffset
  • datetime2
  • smalldatetime
  • čas

V následujícím dotazu jsme deklarovali proměnnou @date s datovým typem datetime2. Můžeme použít funkci DATEADD SQL podle následujícího dotazu.

Použití funkce SQL SERVER DATEADD k získání záznamů z tabulka ve specifikovaném časovém období

Pomocí funkce DATEADD SQL můžeme načíst záznamy z tabulky po určité období. V následujícím dotazu jsme zadali datum pomocí parametru @Startdate. Chceme načíst záznamy z tabulky Objednávky. Musíme získat záznamy mezi @StartDate a @Enddate (přidat 1 hodinu v počáteční datum).

Dostaneme následující výstup.

Použití funkce SQL SERVER DATEADD k získání data nebo časového rozdílu

Pomocí funkce DATEADD SQL můžeme získat časový rozdíl mezi počátečním a koncovým datem. Mnohokrát chceme k získání rozdílu dat použít funkci SQL SERVER DATEADD. Například bychom chtěli vědět, jak dlouho trvalo dokončení objednávky nebo jak dlouho trvalo, než jsme se dostali z domova do kanceláře.

Proveďte následující dotaz, abyste získali rozdíl mezi časem zahájení a časem ukončení. Používáme funkci DATEADD SQL spolu s funkcí DATEDIFF SQL.

Poskytuje uplynulý čas v minutách. Ve funkci DateADD SQL jsme zadali hodnotu 0. Trvá to datová hodnota 1900-01-01 00: 00: 00 000

K reprezentaci můžeme použít formát data převést SQL ve formátu HH: MM: SS.

Udává časový rozdíl ve formátu HH: MM: SS, jak je znázorněno na následujícím obrázku.

Zadejte výsledek funkce SQL SERVER DATEADD jako nový sloupec

Pomocí funkce SQL SERVER DATEADD můžeme po přidání požadované hodnoty data získat nový sloupec. V následujícím dotazu chceme přidat dva dny v počáteční datum a představovat to jako nový sloupec.

Skalární dílčí dotazy a skalární funkce ve funkci DATEADD SQL

Funkci SQL SERVER DATEADD můžeme použít také se skalárními dílčími dotazy a skalárními funkcemi. V následujícím dotazu chceme přidat počet dní v maximální hodnotě data LastEditedWhen v tabulce Sales.orders.

První poddotaz udává číslo 16496 a druhý dílčí dotaz poskytuje datum. K přidání počtu dní jsme použili funkci SQL SERVER DATEADD a dostaneme následující výstup.

Číselné výrazy v Funkce SQL SERVER DATEADD

Ve funkci SQL SERVER DATEADD můžeme používat také číselné výrazy. V následujícím dotazu použijeme k výpočtu čísla a zadání výstupu numerický výraz.

1
2
3

VYBERTE GETDATE () JAKO CurrentDate,
DATEADD (měsíc, – (12/6), GETDATE ()) AS ModifiedDate;

Použití DATEADD s funkcí Rank

Funkci DATEADD SQL můžeme použít také ve funkci Rank. Můžeme to použít pro argument číslo. V následujícím dotazu můžete vidět funkci Row_Number () pro použití parametru čísla a hodnot jako parametru data.

Závěr

V tomto článku jsme prozkoumali různá použití a příklady funkce DATEADD SQL. Umožňuje nám přidat nebo odečíst hodnoty datepart od zadaného data. Doufám, že se vám tento článek líbí. Neváhejte nám poskytnout zpětnou vazbu v komentářích níže.

  • Autor
  • Poslední příspěvky
Jako konzultant s certifikací MCSA a Microsoft Certified Trainer v indickém Gurgaonu, který má 13 let zkušeností, pracuje Rajendra pro řadu velkých společností zaměřených na optimalizaci výkonu, monitorování, vysokou dostupnost a strategie a implementaci zotavení po katastrofě. Je autorem stovek autoritativních článků o SQL Serveru, Azure, MySQL, Linuxu, Power BI, ladění výkonu, AWS / Amazon RDS, Git a souvisejících technologiích, které si dosud prohlédlo více než 10 milionů čtenářů.
Je tvůrcem jedné z největších bezplatných online sbírek článků na jedno téma se svou 50dílnou sérií o skupinách dostupnosti na serveru SQL Server Always On. Na základě svého příspěvku pro komunitu SQL Server byl oceněn různými oceněními, včetně prestižního ocenění „Nejlepší autor roku“ průběžně v letech 2020 a 2021 na serveru SQLShack.
Raj se vždy zajímá o nové výzvy, takže pokud potřebujete poradit pomoc s jakýmkoli tématem obsaženým v jeho spisech, lze ho kontaktovat na adrese [email protected]
Zobrazit všechny příspěvky od Rajendra Gupta

Poslední příspěvky od Rajendry Gupty (zobrazit všechny)
  • Provádění drobných a hlavních upgradů verzí pro AWS RDS SQL Server – 29. ledna 2021
  • Nasazení instancí AWS RDS PostgreSQL – 27. ledna 2021
  • Migrace místních databází SQL na AWS RDS SQL Server pomocí AWS DMS – 25. ledna , 2021

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *