SQL Server getdate() pour une chaîne comme “2009-12-20”

Dans Microsoft SQL Server 2005 et .NET 2.0, je veux convertir la date en cours pour une chaîne de la forme "AAAA-MM-JJ". Par exemple, le 12 décembre 2009 deviendrait "2009-12-20". Comment puis-je le faire en SQL.

Le cadre de cette instruction SQL dans la table de définition. En d'autres termes, c'est la valeur par défaut. Ainsi, lorsqu'un nouvel enregistrement est créé par défaut la valeur de la date courante est stockée comme une chaîne de caractères dans le format ci-dessus.

Je vais essayer:
SÉLECTIONNEZ CONVERT(VARCHAR(10), GETDATE(), 102) COMME [AAAA.MM.DD]

Mais SQL server conserve de conversion que pour:
('SELECT CONVERT(VARCHAR(10), GETDATE(), 102) COMME [AAAA.MM.DD]')

de sorte que le résultat est juste:

'SELECT CONVERT(VARCHAR(10), GETDATE(), 102) COMME [AAAA.MM.DD]'

Voici une capture d'écran de ce que l'explorateur de serveurs Visual Studio, table de définition, propriétés de la montre:

SQL Server getdate() pour une chaîne comme “2009-12-20”

Ces wrapper bits sont ajout automatiquement et la conversion de tous à la chaîne littérale: (N' ')

Voici la raison pour laquelle je suis en train d'utiliser autre chose que la base DATETIME j'utilisais précédemment:

C'est l'erreur que j'obtiens lorsque accrochage tout à l'ASP.NET GridView et essayer de faire une mise à jour via l'affichage de la grille:

Erreur de serveur dans l'Application'/'.

La version de SQL Server est en cours d'utilisation ne prend pas en charge le type de données "date".
Description: Une exception non gérée s'est produite pendant l'exécution de la demande web actuelle. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et où elle a son origine dans le code.

Détails De L'Exception: System.ArgumentException: La version de SQL Server est en cours d'utilisation ne prend pas en charge le type de données "date".

Source De L'Erreur:

Une exception non gérée s'est produite lors de l'exécution de la demande web actuelle. Informations concernant l'origine et l'emplacement de l'exception peut être identifié à l'aide de la trace de pile d'exception ci-dessous.

Trace De La Pile:

[ArgumentException: La version de SQL Server est en cours d'utilisation ne prend pas en charge le type de données 'date'.]

Note: j'ai ajouté une question liée à essayer de contourner le SQL Server ne prend pas en charge le type de données 'date' erreur afin que je puisse utiliser un DATETIME comme recommandé.

  • Pourquoi askf ro aaaa-mm-jj, mais utiliser le style 102 yyyy.mm.dd ?
InformationsquelleAutor Adam Kane | 2009-12-20