sql >> Database >  >> RDS >> Sqlserver

Alleen maand en jaar krijgen van SQL DATE

Naast de reeds gegeven suggesties is er nog een andere mogelijkheid die ik uit uw vraag kan afleiden:
- U wilt nog steeds dat het resultaat een datum is
- Maar u wilt de Dagen, Uren 'weggooien' , etc
- Een jaar/maand alleen datumveld achterlaten

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

Dit haalt het aantal hele maanden vanaf een basisdatum (0) en voegt ze vervolgens toe aan die basisdatum. Dus naar beneden afronden op de maand waarin de datum valt.

OPMERKING:in SQL Server 2008 heeft u nog steeds de TIJD als 00:00:00.000. Dit is niet precies hetzelfde als het "verwijderen" van een notatie van dag en tijd. Ook de DAG is ingesteld op de eerste. bijv. 2009-10-01 00:00:00.000



  1. vreemde karaktercodering van opgeslagen gegevens, oud script laat ze goed zien, nieuwe niet

  2. Inzicht in de effecten van hoge latentie in MySQL- en MariaDB-oplossingen met hoge beschikbaarheid

  3. Hoe strings in SQL Server te ontsnappen met behulp van PHP?

  4. MariaDB JSON-functies