sql >> Databáze >  >> RDS >> Sqlserver

Získání pouze měsíce a roku z SQL DATE

Kromě již uvedených návrhů existuje ještě jedna možnost, kterou mohu z vaší otázky odvodit:
- Stále chcete, aby výsledkem bylo datum
- Ale chcete „zahodit“ Dny, hodiny , atd
- Ponechání pole data pouze pro rok/měsíc

SELECT
   DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
   <your_table>

Tím se získá počet celých měsíců od základního data (0) a poté se přidají k tomuto základnímu datu. Tedy zaokrouhlení dolů na měsíc, ve kterém je datum.

POZNÁMKA:V SQL Server 2008 budete mít ČAS stále připojený jako 00:00:00.000Toto není úplně stejné jako „odstranění“ libovolného zápisu dne a času. Také DEN nastavený na první. např. 2009-10-01 00:00:00.000



  1. MariaDB NULLIF() Vysvětleno

  2. Laravel Migration Error:Chyba syntaxe nebo narušení přístupu:1071 Zadaný klíč byl příliš dlouhý; maximální délka klíče je 767 bajtů

  3. výchozí časové pásmo postgres

  4. SELECT / GROUP BY - časové úseky (10 sekund, 30 sekund atd.)