Database
 sql >> Baza danych >  >> RDS >> Database

Jak odjąć 30 dni od daty w T-SQL

Problem:

Chcesz uzyskać datę 30 dni przed podaną datą w T-SQL.

Przykład:

Nasza baza danych zawiera tabelę o nazwie Computer z danymi w kolumnach Id , Name i PurchaseDate .

Identyfikator Nazwa Data zakupu
1 Sony GX1000 2019-01-20
2 Samsung LX2000 2019-04-15
3 Dell K80 2019-08-30

Uzyskajmy nazwę każdego komputera i datę 30 dni przed data zakupu.

Rozwiązanie:

Użyjemy funkcji DATEADD(), aby odjąć określoną liczbę dni od daty.

	SELECT Name,
		  DATEADD(day, -30, PurchaseDate)
		    AS BeforePurchaseDate;
      FROM Computer;

Oto wynik zapytania:

Nazwa Przed datą zakupu
Sony GX1000 2018-12-21
Samsung LX2000 2019-03-16
Dell K80 31-07-2019

Dyskusja:

Jeśli chcesz odjąć daty lub godziny w SQL Server, użyj DATEADD() funkcjonować. Wymaga trzech argumentów. Pierwszym argumentem jest jednostka daty/czasu – w naszym przykładzie określamy dzień jednostka.

Dalej jest data lub jednostka czasu wartość . W naszym przykładzie jest to -30 , ponieważ zabieramy 30 dni od aktualnej daty. Pamiętaj, że minus oznacza odejmowanie wartość; bez tego znaku dodajesz do podanej daty.

Ostatnim argumentem jest data, w której operujemy; może to być kolumna daty/godziny/data/godzina lub dowolne wyrażenie zwracające datę lub godzinę. W naszym przykładzie używamy PurchaseDate , date kolumna.

Funkcja zwraca zmienioną datę. W naszym przykładzie zapytanie dotyczące komputera o nazwie 'Dell K80' zwraca nową datę w BeforePurchaseDate kolumna. Pierwotna data '2019-08-30' zmieniono na datę sprzed 30 dni:'2018-07-31' .

Możesz użyć DATEADD() funkcja dla wszystkich typów danych daty i godziny.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cena nie oczyszczenia

  2. Czytelne materiały wtórne w ramach budżetu

  3. SQL DROP COLUMN dla początkujących

  4. Jak obliczyć sumę biegową w przesunięciu ku czerwieni?

  5. Jak znaleźć maksymalną wartość kolumny numerycznej w SQL?