sql >> Databasteknik >  >> RDS >> Sqlserver

Får endast månad och år från SQL DATE

Förutom de förslag som redan givits finns det en annan möjlighet som jag kan sluta mig till från din fråga:
- Du vill fortfarande att resultatet ska vara ett datum
- Men du vill "kassera" Dagarna, timmarna , etc
- Lämna endast ett år/månad datumfält

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

Detta får antalet hela månader från ett basdatum (0) och lägger sedan till dem till det basdatumet. Avrundar alltså nedåt till den månad då datumet är i.

OBS:I SQL Server 2008 kommer du fortfarande att ha TIME kopplad till 00:00:00.000. Detta är inte exakt samma sak som att "ta bort" alla noteringar av dag och tid helt. t.ex. 2009-10-01 00:00:00.000



  1. I SQL Server, hur genererar jag en CREATE TABLE-sats för en given tabell?

  2. Skapa en app för Django Movie Recommendation med Jaccard Index

  3. För sista gången, NEJ, du kan inte lita på IDENT_CURRENT()

  4. Intel SSD, nu utanför sh..err, skamlistan