Nur Monat und Jahr in SQL Server 2008 speichern?

8

Ist es möglich, den Monat / das Jahr in SQL Server 2008 mit einer regulären Datetime zu speichern? Ich brauche keinen Zeitstempel, und die Spalte speichert einzigartige mo / yr-Kombinationen (d. H. 10-11, 11-11, 12-11 usw.).

Irgendwelche Empfehlungen?

    
JaJ 20.10.2011, 23:20
quelle

4 Antworten

14

Ohne den Verwendungszweck zu kennen, ist es nicht möglich, richtig zu beraten. Das Speichern von Monat und Jahr ist jedoch auf mindestens drei Arten möglich:

  • Verwenden Sie ein Datumsfeld, aber speichern Sie immer den ersten Tag des Monats um Mitternacht; Formatieren Sie dann das Datumsfeld für die Anzeige
  • immer benutzerdefiniert
  • fügt ganze Jahr- und Monatsfelder hinzu und füllt sie durch Aufteilen eines Datums
  • fügen Sie ein Integer-Feld hinzu, in dem Sie es als Jahr * 100 + Monat oder ein anderes nützliches Schema
  • kodieren
wallyk 20.10.2011, 23:25
quelle
2

Sql Server speichert die Datetime-Daten in ihrer Gesamtheit (Jahr-Monat-Tag-Stunde: min: sec.milliSec), egal was passiert.

Wenn Sie Ihre Daten speichern, können Sie den Tag zum Ersten des Monats machen. Formatieren Sie einfach die Daten wie Sie möchten, wenn Sie Ihre Abfragen ausführen.

Ссылка

    
Nick Rolando 20.10.2011 23:23
quelle
1

Sie können Jahr und Monat nur in einer DateTime-Spalte speichern. Nun, was Sie tun können, ist der Rest der Werte. zB: 2011.10.1.1, 2011.11.1.1 so.

Oder Sie können es als Zeichenfolge speichern.

    
DarthVader 20.10.2011 23:31
quelle
1

Ab SQL Server 2008:

Speichern Sie als Date -Spalte und fügen Sie die folgende Prüfbedingung hinzu, um sicherzustellen, dass der Wert immer der erste des Monats ist:

  

datepart (Monat, MyDate) & lt; & gt; Datumsteil (Monat, Datumadd (Tag, -1, MyDate))

    
Thomsen 30.08.2012 10:47
quelle

Tags und Links