IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

[Débutant] Problème de conversion de format de date


Sujet :

ASP

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 10
    Points : 5
    Points
    5
    Par défaut [Débutant] Problème de conversion de format de date
    salut à tous, j'ai un petit problème avec une appli Web écrite en ASP et qui tournait sous Access 2000. En fait la base Access a été migrée vers SQL Server 7.0 et j'ai désormais un problème avec le code concernant le format des dates : sous Access, j'avais dans une table les dates rentrées au format jj/mm/aaaa, ma requête ressemblait donc à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where date=#mm/jj/aaaa#;

    Sous SQL Server, la migration a converti le champ date au format datetime, dans la table les dates sont toujours affichées au format jj/mm/aaaa, mais ma reqûete SQL ne fonctionne plus.

    Je suis débutant, merci de m'aider

  2. #2
    Vow
    Vow est déconnecté
    Membre expérimenté Avatar de Vow
    Inscrit en
    Janvier 2003
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 259
    Points : 1 584
    Points
    1 584
    Par défaut
    Salut
    En fait, c'est tout simple, il faut remplacer les "#" par des " ' " :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where date='mm/jj/aaaa';
    @++

  3. #3
    Inactif
    Inscrit en
    Juillet 2002
    Messages
    315
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 315
    Points : 353
    Points
    353
    Par défaut
    sinon, pour éviter ce genre de galères, utilise un champ texte simple dans lequel tu stockes tes dates au format "aaaammjj"
    c'est plus simple pour les comparaisons, et une simple manipulation de chaîne te permet de faire un affichage "normal" de date

  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Vow
    Salut
    En fait, c'est tout simple, il faut remplacer les "#" par des " ' " :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where date='mm/jj/aaaa';
    @++
    j'ai essayé, et j'ai un message d'erreur de conversion de chaîne de format date

  5. #5
    Vow
    Vow est déconnecté
    Membre expérimenté Avatar de Vow
    Inscrit en
    Janvier 2003
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 259
    Points : 1 584
    Points
    1 584
    Par défaut
    Quel est la paramètre régional de date pour ta machine hébergeant le SQL Server ?

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Vow
    Quel est la paramètre régional de date pour ta machine hébergeant le SQL Server ?
    Aïe...tu veux dire les paramètres que l'on peut voir dans les dates Windows ou bien en interne à SQL Server ?

    sinon voici le message d'erreur précis :
    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][ODBC SQL Server Driver][SQL Server]Erreur de syntaxe lors de la conversion d'une valeur datetime à partir d'une chaîne de caractères.

    /test/toto.asp, line 63
    j'ai simplement fait une requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query = "select * from matable where date='&date()&'"

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Alors j'ai fouillé dans les options régionales du serveur hébergeant SQL Server, c'est un Windows 2000 Server
    Exemple de date courte : 02/09/2003
    Format de date courte : jj/MM/aaaa
    Séparateur de date : /
    Exemple de date longue : mardi 2 Septembre 2003
    Format de date longue : jjjj j MMMM aaaa
    En espérant que c'était bien les paramètres de la question de Vow

  8. #8
    Vow
    Vow est déconnecté
    Membre expérimenté Avatar de Vow
    Inscrit en
    Janvier 2003
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 259
    Points : 1 584
    Points
    1 584
    Par défaut
    Oui c'est bien ça
    As-tu essayé la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where date='jj/mm/aaaa';

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Vow
    Oui c'est bien ça
    As-tu essayé la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matable where date='jj/mm/aaaa';
    oui et ça marche j'ai des résultats. C'est pour ça que ça me perturbe un peu

  10. #10
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    même résultat en remplaçant la fonction date() par getdate().

    De plus ce qui est bizarre c'est que la fonction date() me renvoie 02/09/2003. Quand je l'utilise dans la requête SQL ça ne fonctionne pas, alors que quand j'utilise la chaîne 02/09/2003 ça fonctionne.

  11. #11
    Vow
    Vow est déconnecté
    Membre expérimenté Avatar de Vow
    Inscrit en
    Janvier 2003
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 259
    Points : 1 584
    Points
    1 584
    Par défaut
    Citation Envoyé par diabolooo
    Sous SQL Server, la migration a converti le champ date au format datetime, dans la table les dates sont toujours affichées au format jj/mm/aaaa, mais ma reqûete SQL ne fonctionne plus.
    Oups, j'avais pas tout lu...

    Pour la requête, ça serait mieux que tu mettes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query = "select * from matable where date='" & date() & "' "
    Tu voudrais peut-être que ta requête fonctionne pour les deux bases ?

  12. #12
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Vow
    Citation Envoyé par diabolooo
    Sous SQL Server, la migration a converti le champ date au format datetime, dans la table les dates sont toujours affichées au format jj/mm/aaaa, mais ma reqûete SQL ne fonctionne plus.
    Oups, j'avais pas tout lu...

    Pour la requête, ça serait mieux que tu mettes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query = "select * from matable where date='" & date() & "' "
    Tu voudrais peut-être que ta requête fonctionne pour les deux bases ?
    non à terme je souhaite désactiver la base Access au profit de la version SQL Server, qui est beaucoup plus fiable.

    Mais cela dit j'ai trouvé un moyen avec la fonction DATEDIFF() et ça marche plutôt pas mal, je vous remercie pour votre aide, ça m'a quand même bien aiguillé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion de format de date
    Par msurf dans le forum Langage
    Réponses: 2
    Dernier message: 22/03/2007, 11h31
  2. Problème de conversion de format image dans DirectShow
    Par grob1212 dans le forum DirectX
    Réponses: 4
    Dernier message: 19/06/2006, 20h16
  3. [Débutant] Problème de conversion en millisecondes
    Par pinggu dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 31/05/2006, 12h46
  4. [Débutant] Problème de conversion
    Par PCMan dans le forum Java ME
    Réponses: 4
    Dernier message: 25/10/2005, 20h34
  5. Conversion de format de date
    Par decour dans le forum Access
    Réponses: 2
    Dernier message: 03/10/2005, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo