10
votes

Stockage juste mois et année dans SQL Server 2008?

est-il possible de sauvegarder le mois / année dans SQL Server 2008 avec une date de date régulière? Je n'ai pas besoin d'un horodatage et la colonne va stocker des combinaisons MO / YR uniques (I.E. 10-11, 11-11, 12-11, etc.).

Toute recommandation?


0 commentaires

5 Réponses :


3
votes

SQL Server stockera les données DateTime dans son intégralité (heure du mois d'année: Min: Sec.Millisec) Peu importe quoi.

Lorsque vous stockez vos dates, vous pouvez faire la journée le 1er du mois. Il suffit de formater les dates comment vous voulez quand vous faites vos questions.

http://www.sql-server-helper.com/ TIPS / DATE-FORMATS.ASPX


0 commentaires

17
votes

Sans connaître l'utilisation prévue, il n'est pas possible de conseiller correctement. Cependant, la conservation du mois et de l'année est facilement faite sur au moins trois manières:

  • Utilisez un champ de date, mais conservez-le toujours le premier jour du mois à minuit; Ensuite, Toujours format personnalisé Le champ Date d'affichage
  • Ajoutez des champs d'une année et de mois entier et de les peupler en divisant une date
  • Ajouter un champ entier où vous l'encodez comme année * 100 + mois ou un autre système utile


1
votes

Vous ne pouvez pas stocker que l'année et le mois dans une colonne DateTime. Eh bien, ce que vous pouvez faire est de défaut le reste des valeurs. IE: 2011.10.1.1, 2011.11.1.1.1 Comme ça.

ou vous pouvez le stocker comme chaîne.


0 commentaires

2
votes

à partir de SQLServer 2008 et à partir de:

Enregistrer en tant que colonne CODE> Colonne et ajoutez la contrainte de vérification suivante pour vous assurer que la valeur est toujours la première du mois: p>

datepart(month, MyDate)<>datepart(month,dateadd(day, -1, MyDate))


1 commentaires

J'aime cette approche, mais je pense qu'une contrainte de contrôle plus simple est jour (mydate) = 1 .



0
votes
SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 105), 7) AS [MM-YYYY]
You should try this

0 commentaires