2011-09-12 4 views
1

J'essaie de me souvenir de la syntaxe pour changer un champ de date en une chaîne. Je sais que je suis proche mais pas 100% correct. Voici ce que j'utilise jusqu'à présent: TO_CHAR(FIELD_NAME). J'utilise une base de données Access. L'erreur que j'obtiens est: undefined expression. Toute aide sera la bienvenue.Question de syntaxe SQL

+4

Quels SGBDR utilisez-vous? –

+0

Il est utile de spécifier exactement quelle implémentation SQL vous utilisez. Microsoft SQL, DB2, MySql, Postgres ou autre chose entièrement. – Caimen

+2

@Joe _Im utilisant une base de données d'accès_ On dirait que l'accès à moi ... –

Répondre

3

Utilisez soit CStr(dateField) ou Format(dateField) à convertir. plus, vous pouvez ajouter des paramètres à Format() pour l'afficher dans un format différent, tel que:

Format(dateField, "general date") 9/12/2010
Format(dateField, "long date") Monday, September 12, 2011

+0

+1 nice edit j'aurais voté plus tôt mais je ne pouvais pas pour une raison quelconque;). –

+0

Merci. J'ai édité la réponse comme 3 fois, l'ai supprimée et l'ai ressuscitée une fois que j'ai eu raison. – adamcodes

+0

hmm Je suppose que ces modifications étaient à l'intérieur de la période de grâce où elles n'apparaissent pas dans [l'historique des révisions] (http://stackoverflow.com/posts/7392873/revisions);) –

-1

Vous pouvez utiliser la fonction CONVERT, comme ceci:

CONVERT(VARCHAR, DateField, 100) 

Voici un lien qui montre les différents formats de date que vous pouvez utiliser:

http://www.sql-server-helper.com/tips/date-formats.aspx

+0

L'utilisation de to_char dans SQL Server résulterait en quelque chose comme 'Msg 195, niveau 15, état 10, ligne 1 'to_char' n'est pas une fonction intégrée reconnue name.' Pas «expression indéfinie». Aussi la question était claire sur la technologie utilisée –

+0

@Conrad Frix: Je n'utilise pas TO_CHAR, je convertis en VARCHAR ... Avez-vous downvote la mauvaise réponse ?? –

+0

@Conrad Frix: Testé - ne produit pas d'erreurs. Les résultats sont les suivants: 'Apr 19 2010 9:30 ' –

1

Étant donné que vous utilisez MS Access et son champ de date que vous n'êtes probablement pas seulement cherche à convertir en chaîne mais aussi formater la date. Si c'est effectivement le cas, vous aurez besoin de la fonction Format

SELECT Format ([DateCreate], "yyyy/mm/dd") AS Foo 
FROM MSysObjects;