Je viens d'installer SQL Serveur 2000 en vue de remplacer une base Access.
J'ai créé unenouvelle base et ai importé les tables.
Mais... j'ai des tables qui ne passaient pas : celles qui contiennent des
données de type "Date/Heure" au format "heure, abrégé" sous Access :-(
A l'importation, SQL Serveur me les montre du doigt : Erreur INSERT
("Mon_heure", DBTYPE_DBTIMESTAMP), état 6 : dépassement de capacités des
donnéees.
Une piste ? : si je fais "aperçu" au moment de la sélection des tables, il
m'affiche une heure "14:00" sous Access en "2:00:00 PM"
J'ai passé le format de ces champs dans ma table sous SQL Serveur en
"datetime" et... ça passe pour l'importation.
Est-ce toutefois une bonne idée ?
Un peu plus je tente une requête avec un "WHERE date_dun_truc like
'25/12/2003'..." SQL Serveur n'en veux pas :-(
Suis-je obligé de faire "WHERE Day(date_dun_truc)=25 AND
Month(date_dun_truc)=12 AND Year(date_dun_truc)=2003..." ?
Si oui je suis dans une mer.. pas croyable mon application est énorme et
elle est faire pour gérer des plannings, je ne vous raconte pas.
Si vous avez des conseils après m'avoir lu (merci beaucoup pour ça)
n'hésitez pas à me donner vos conseils, m'apporter un peu de votre
expérience !!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
J-Pierre
Bonsoir Michel,
Tu découvres les problèmes de la migration vers SQL.
Pour les tables, le mieux est de les exporter d'Access vers SQL, de contrôler ce que l'assistant a généré, de corriger, il a parfois des choix surprenants. Tu supprimes toutes les données dans les tables SQL, tu rajoutes les clés, index, contraintes, tout le barda, et tu importes avec DTS, cette fois-çi, il n'importera que les données sur des tables corrigées. C'est un peu long, mais ça vaut la peine si tu veux partir sur de bonnes bases, si j'ose dire....
Pour les champs heures abrégées, SQL ne reconait pas, soit tu transformes en date/heure, soit en caractères "hh:mm" , ça dépend de l'appli, et de ce que tu préfères.
Pour la sélection sur les dates, utilises le format 'YYYY/MM/DD'. Mieux, utilise le format ISO 'YYYYMMDD'.
La manipulation des dates est très différente avec access et SQL mais on s'habitue très bien.
Pour les formulaires et états, n'essaie pas d'utiliser l'assistant de conversion, le résultat est épouvantable.
A bientôt, je suppose :-)
J-Pierre
"Michel _newbie" a écrit dans le message de news:
Bonjour,
Je viens d'installer SQL Serveur 2000 en vue de remplacer une base Access. J'ai créé unenouvelle base et ai importé les tables. Mais... j'ai des tables qui ne passaient pas : celles qui contiennent des données de type "Date/Heure" au format "heure, abrégé" sous Access :-( A l'importation, SQL Serveur me les montre du doigt : Erreur INSERT ("Mon_heure", DBTYPE_DBTIMESTAMP), état 6 : dépassement de capacités des donnéees. Une piste ? : si je fais "aperçu" au moment de la sélection des tables, il m'affiche une heure "14:00" sous Access en "2:00:00 PM"
J'ai passé le format de ces champs dans ma table sous SQL Serveur en "datetime" et... ça passe pour l'importation. Est-ce toutefois une bonne idée ?
Un peu plus je tente une requête avec un "WHERE date_dun_truc like '25/12/2003'..." SQL Serveur n'en veux pas :-( Suis-je obligé de faire "WHERE Day(date_dun_truc)% AND Month(date_dun_truc) AND Year(date_dun_truc) 03..." ?
Si oui je suis dans une mer.. pas croyable mon application est énorme et elle est faire pour gérer des plannings, je ne vous raconte pas.
Si vous avez des conseils après m'avoir lu (merci beaucoup pour ça) n'hésitez pas à me donner vos conseils, m'apporter un peu de votre expérience !!!
Merci !!!!!!!!!!!
Michel
Bonsoir Michel,
Tu découvres les problèmes de la migration vers SQL.
Pour les tables, le mieux est de les exporter d'Access vers SQL, de contrôler ce que l'assistant a généré, de corriger, il a parfois
des choix surprenants. Tu supprimes toutes les données dans les tables SQL, tu rajoutes les clés, index, contraintes, tout le barda,
et tu importes avec DTS, cette fois-çi, il n'importera que les données sur des tables corrigées. C'est un peu long, mais ça vaut la
peine si tu veux partir sur de bonnes bases, si j'ose dire....
Pour les champs heures abrégées, SQL ne reconait pas, soit tu transformes en date/heure, soit en caractères "hh:mm" , ça dépend de
l'appli, et de ce que tu préfères.
Pour la sélection sur les dates, utilises le format 'YYYY/MM/DD'.
Mieux, utilise le format ISO 'YYYYMMDD'.
La manipulation des dates est très différente avec access et SQL mais on s'habitue très bien.
Pour les formulaires et états, n'essaie pas d'utiliser l'assistant de conversion, le résultat est épouvantable.
A bientôt, je suppose :-)
J-Pierre
"Michel _newbie" <martin.michel8@wanadooo.fr> a écrit dans le message de news:Owk31MQuDHA.2432@TK2MSFTNGP10.phx.gbl...
Bonjour,
Je viens d'installer SQL Serveur 2000 en vue de remplacer une base Access.
J'ai créé unenouvelle base et ai importé les tables.
Mais... j'ai des tables qui ne passaient pas : celles qui contiennent des
données de type "Date/Heure" au format "heure, abrégé" sous Access :-(
A l'importation, SQL Serveur me les montre du doigt : Erreur INSERT
("Mon_heure", DBTYPE_DBTIMESTAMP), état 6 : dépassement de capacités des
donnéees.
Une piste ? : si je fais "aperçu" au moment de la sélection des tables, il
m'affiche une heure "14:00" sous Access en "2:00:00 PM"
J'ai passé le format de ces champs dans ma table sous SQL Serveur en
"datetime" et... ça passe pour l'importation.
Est-ce toutefois une bonne idée ?
Un peu plus je tente une requête avec un "WHERE date_dun_truc like
'25/12/2003'..." SQL Serveur n'en veux pas :-(
Suis-je obligé de faire "WHERE Day(date_dun_truc)% AND
Month(date_dun_truc) AND Year(date_dun_truc) 03..." ?
Si oui je suis dans une mer.. pas croyable mon application est énorme et
elle est faire pour gérer des plannings, je ne vous raconte pas.
Si vous avez des conseils après m'avoir lu (merci beaucoup pour ça)
n'hésitez pas à me donner vos conseils, m'apporter un peu de votre
expérience !!!
Tu découvres les problèmes de la migration vers SQL.
Pour les tables, le mieux est de les exporter d'Access vers SQL, de contrôler ce que l'assistant a généré, de corriger, il a parfois des choix surprenants. Tu supprimes toutes les données dans les tables SQL, tu rajoutes les clés, index, contraintes, tout le barda, et tu importes avec DTS, cette fois-çi, il n'importera que les données sur des tables corrigées. C'est un peu long, mais ça vaut la peine si tu veux partir sur de bonnes bases, si j'ose dire....
Pour les champs heures abrégées, SQL ne reconait pas, soit tu transformes en date/heure, soit en caractères "hh:mm" , ça dépend de l'appli, et de ce que tu préfères.
Pour la sélection sur les dates, utilises le format 'YYYY/MM/DD'. Mieux, utilise le format ISO 'YYYYMMDD'.
La manipulation des dates est très différente avec access et SQL mais on s'habitue très bien.
Pour les formulaires et états, n'essaie pas d'utiliser l'assistant de conversion, le résultat est épouvantable.
A bientôt, je suppose :-)
J-Pierre
"Michel _newbie" a écrit dans le message de news:
Bonjour,
Je viens d'installer SQL Serveur 2000 en vue de remplacer une base Access. J'ai créé unenouvelle base et ai importé les tables. Mais... j'ai des tables qui ne passaient pas : celles qui contiennent des données de type "Date/Heure" au format "heure, abrégé" sous Access :-( A l'importation, SQL Serveur me les montre du doigt : Erreur INSERT ("Mon_heure", DBTYPE_DBTIMESTAMP), état 6 : dépassement de capacités des donnéees. Une piste ? : si je fais "aperçu" au moment de la sélection des tables, il m'affiche une heure "14:00" sous Access en "2:00:00 PM"
J'ai passé le format de ces champs dans ma table sous SQL Serveur en "datetime" et... ça passe pour l'importation. Est-ce toutefois une bonne idée ?
Un peu plus je tente une requête avec un "WHERE date_dun_truc like '25/12/2003'..." SQL Serveur n'en veux pas :-( Suis-je obligé de faire "WHERE Day(date_dun_truc)% AND Month(date_dun_truc) AND Year(date_dun_truc) 03..." ?
Si oui je suis dans une mer.. pas croyable mon application est énorme et elle est faire pour gérer des plannings, je ne vous raconte pas.
Si vous avez des conseils après m'avoir lu (merci beaucoup pour ça) n'hésitez pas à me donner vos conseils, m'apporter un peu de votre expérience !!!
Merci !!!!!!!!!!!
Michel
Michel _newbie
"J-Pierre" a écrit dans le message de news:eh2%
Bonsoir Michel,
Tu découvres les problèmes de la migration vers SQL.
Oui :-)
Pour la sélection sur les dates, utilises le format 'YYYY/MM/DD'. Mieux, utilise le format ISO 'YYYYMMDD'.
La manipulation des dates est très différente avec access et SQL mais on s'habitue très bien.
Pour les formulaires et états, n'essaie pas d'utiliser l'assistant de conversion, le résultat est épouvantable.
A bientôt, je suppose :-)
Oui et merci beaucoup Jean-Pierre, surtout pour m'avoir appris le format ISO 'YYYMMDD'. Je te fais part ici de mes premières questions en essayant de faire tourner mon code avec SQL Serveur.
Je récupère des mois, jours et années d'un peu de partout dans mon code ASP, il faut que je teste avant de construire cette chaîne pour rajouter un "0" si le jour ou le mois est inférieur à 10. Parce que "20031225" il comprend mais "2003121" non, c'est logique.
J'avais :
date_sql = nJour&"/"&nMois&"/"&nAnnee
et maintenant :
date_sql = nAnnee if (nMois < 10) then date_sql = date_sql&"0"&nMois else date_sql = date_sql&nMois end if if (nJour < 10) then date_sql = date_sql&"0"&nJour else date_sql = date_sql&nJour end if
J'ai écris cela très (trop) rapidement, mais j'imagine qu'il y a mieux à faire ??
Et un peu plus loin dans mon code, la commande :
DateDiff("d",Date(),date_sql)
ne fonctionne bien sûr plus. Au lieu d'avoir une chaîne pour la date temporaire, il m'en faut deux : une pour SQL Serveur et une autre pour le code ASP ?
Une autre question qui me viens à l'esprit : quelle est la meilleure syntaxe à utiliser dans une requête qui doit me retourner toues les enregistrements correspondant à un mois et une année ? "...WHERE Month(date_en_base) = Mois_donne AND Year(date_en_base) Annee_Donnee..." ??
J'essai de regrouper toutes les meilleures choses à faire avant de retaper tout mon code, mais, pour changer je suis pressé par le temps.
Merci encore
Michel
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de
news:eh2%231PRuDHA.2880@tk2msftngp13.phx.gbl...
Bonsoir Michel,
Tu découvres les problèmes de la migration vers SQL.
Oui :-)
Pour la sélection sur les dates, utilises le format 'YYYY/MM/DD'.
Mieux, utilise le format ISO 'YYYYMMDD'.
La manipulation des dates est très différente avec access et SQL mais on
s'habitue très bien.
Pour les formulaires et états, n'essaie pas d'utiliser l'assistant de
conversion, le résultat est épouvantable.
A bientôt, je suppose :-)
Oui et merci beaucoup Jean-Pierre, surtout pour m'avoir appris le format ISO
'YYYMMDD'.
Je te fais part ici de mes premières questions en essayant de faire tourner
mon code avec SQL Serveur.
Je récupère des mois, jours et années d'un peu de partout dans mon code ASP,
il faut que je teste avant de construire cette chaîne pour rajouter un "0"
si le jour ou le mois est inférieur à 10.
Parce que "20031225" il comprend mais "2003121" non, c'est logique.
J'avais :
date_sql = nJour&"/"&nMois&"/"&nAnnee
et maintenant :
date_sql = nAnnee
if (nMois < 10) then
date_sql = date_sql&"0"&nMois
else
date_sql = date_sql&nMois
end if
if (nJour < 10) then
date_sql = date_sql&"0"&nJour
else
date_sql = date_sql&nJour
end if
J'ai écris cela très (trop) rapidement, mais j'imagine qu'il y a mieux à
faire ??
Et un peu plus loin dans mon code, la commande :
DateDiff("d",Date(),date_sql)
ne fonctionne bien sûr plus. Au lieu d'avoir une chaîne pour la date
temporaire, il m'en faut deux : une pour SQL Serveur et une autre pour le
code ASP ?
Une autre question qui me viens à l'esprit : quelle est la meilleure syntaxe
à utiliser dans une requête qui doit me retourner toues les enregistrements
correspondant à un mois et une année ?
"...WHERE Month(date_en_base) = Mois_donne AND Year(date_en_base) Annee_Donnee..." ??
J'essai de regrouper toutes les meilleures choses à faire avant de retaper
tout mon code, mais, pour changer je suis pressé par le temps.
Tu découvres les problèmes de la migration vers SQL.
Oui :-)
Pour la sélection sur les dates, utilises le format 'YYYY/MM/DD'. Mieux, utilise le format ISO 'YYYYMMDD'.
La manipulation des dates est très différente avec access et SQL mais on s'habitue très bien.
Pour les formulaires et états, n'essaie pas d'utiliser l'assistant de conversion, le résultat est épouvantable.
A bientôt, je suppose :-)
Oui et merci beaucoup Jean-Pierre, surtout pour m'avoir appris le format ISO 'YYYMMDD'. Je te fais part ici de mes premières questions en essayant de faire tourner mon code avec SQL Serveur.
Je récupère des mois, jours et années d'un peu de partout dans mon code ASP, il faut que je teste avant de construire cette chaîne pour rajouter un "0" si le jour ou le mois est inférieur à 10. Parce que "20031225" il comprend mais "2003121" non, c'est logique.
J'avais :
date_sql = nJour&"/"&nMois&"/"&nAnnee
et maintenant :
date_sql = nAnnee if (nMois < 10) then date_sql = date_sql&"0"&nMois else date_sql = date_sql&nMois end if if (nJour < 10) then date_sql = date_sql&"0"&nJour else date_sql = date_sql&nJour end if
J'ai écris cela très (trop) rapidement, mais j'imagine qu'il y a mieux à faire ??
Et un peu plus loin dans mon code, la commande :
DateDiff("d",Date(),date_sql)
ne fonctionne bien sûr plus. Au lieu d'avoir une chaîne pour la date temporaire, il m'en faut deux : une pour SQL Serveur et une autre pour le code ASP ?
Une autre question qui me viens à l'esprit : quelle est la meilleure syntaxe à utiliser dans une requête qui doit me retourner toues les enregistrements correspondant à un mois et une année ? "...WHERE Month(date_en_base) = Mois_donne AND Year(date_en_base) Annee_Donnee..." ??
J'essai de regrouper toutes les meilleures choses à faire avant de retaper tout mon code, mais, pour changer je suis pressé par le temps.
Merci encore
Michel
J-Pierre
Bonjour Michel,
Pour le format ISO, il est surtout utile si tu développes un projet Access ADP, car YYYY/MM/DD qui marche avec Access 2000/SQL ne marche pas avec Access XP/SQL. Mais ce format n'est reconnu que par SQL server et utilisable seulement dans tes requêtes SQL.
Dans ce cas, le plus simple est une fonction:
Function ConvDateISO(ByVal Wdate As Date) ConvDateISO = Year(Wdate) & Format(Month(Wdate), "00") & Format(Day(Wdate), "00") End Function
Et ta requête: WHERE maDate = '" & ConvDateIso(monChampDate) & "'"
Sinon, avec du code ASP, tu peux très bien utiliser YYYY/MM/DD et une fonction
Public Function ConvDateUS(ByVal Wdate As Date) ConvDateUS = Year(Wdate) & "/" & Month(Wdate) & "/" & Day(Wdate) End Function.
Comme ça, tu ne te poses pas de questions avec les paramètres régionaux, tes DateAdd et DateDiff vont toujours fonctionner. Il faudra que tu fasses encore des essais pour voir le format exact que te retourne SQL. Si tu as des problèmes, reviens.....
J-Pierre
"Michel _newbie" a écrit dans le message de news:%
"J-Pierre" a écrit dans le message de news:eh2%
Bonsoir Michel,
Tu découvres les problèmes de la migration vers SQL.
Oui :-)
Pour la sélection sur les dates, utilises le format 'YYYY/MM/DD'. Mieux, utilise le format ISO 'YYYYMMDD'.
La manipulation des dates est très différente avec access et SQL mais on s'habitue très bien.
Pour les formulaires et états, n'essaie pas d'utiliser l'assistant de conversion, le résultat est épouvantable.
A bientôt, je suppose :-)
Oui et merci beaucoup Jean-Pierre, surtout pour m'avoir appris le format ISO 'YYYMMDD'. Je te fais part ici de mes premières questions en essayant de faire tourner mon code avec SQL Serveur.
Je récupère des mois, jours et années d'un peu de partout dans mon code ASP, il faut que je teste avant de construire cette chaîne pour rajouter un "0" si le jour ou le mois est inférieur à 10. Parce que "20031225" il comprend mais "2003121" non, c'est logique.
J'avais :
date_sql = nJour&"/"&nMois&"/"&nAnnee
et maintenant :
date_sql = nAnnee if (nMois < 10) then date_sql = date_sql&"0"&nMois else date_sql = date_sql&nMois end if if (nJour < 10) then date_sql = date_sql&"0"&nJour else date_sql = date_sql&nJour end if
J'ai écris cela très (trop) rapidement, mais j'imagine qu'il y a mieux à faire ??
Et un peu plus loin dans mon code, la commande :
DateDiff("d",Date(),date_sql)
ne fonctionne bien sûr plus. Au lieu d'avoir une chaîne pour la date temporaire, il m'en faut deux : une pour SQL Serveur et une autre pour le code ASP ?
Une autre question qui me viens à l'esprit : quelle est la meilleure syntaxe à utiliser dans une requête qui doit me retourner toues les enregistrements correspondant à un mois et une année ? "...WHERE Month(date_en_base) = Mois_donne AND Year(date_en_base) > Annee_Donnee..." ??
J'essai de regrouper toutes les meilleures choses à faire avant de retaper tout mon code, mais, pour changer je suis pressé par le temps.
Merci encore
Michel
Bonjour Michel,
Pour le format ISO, il est surtout utile si tu développes un projet Access ADP, car YYYY/MM/DD qui marche avec Access 2000/SQL ne
marche pas avec Access XP/SQL. Mais ce format n'est reconnu que par SQL server et utilisable seulement dans tes requêtes SQL.
Dans ce cas, le plus simple est une fonction:
Function ConvDateISO(ByVal Wdate As Date)
ConvDateISO = Year(Wdate) & Format(Month(Wdate), "00") & Format(Day(Wdate), "00")
End Function
Et ta requête:
WHERE maDate = '" & ConvDateIso(monChampDate) & "'"
Sinon, avec du code ASP, tu peux très bien utiliser YYYY/MM/DD et une fonction
Public Function ConvDateUS(ByVal Wdate As Date)
ConvDateUS = Year(Wdate) & "/" & Month(Wdate) & "/" & Day(Wdate)
End Function.
Comme ça, tu ne te poses pas de questions avec les paramètres régionaux, tes DateAdd et DateDiff vont toujours fonctionner. Il
faudra que tu fasses encore des essais pour voir le format exact que te retourne SQL. Si tu as des problèmes, reviens.....
J-Pierre
"Michel _newbie" <martin.michel8@wanadooo.fr> a écrit dans le message de news:%23QuntcYuDHA.556@TK2MSFTNGP11.phx.gbl...
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de
news:eh2%231PRuDHA.2880@tk2msftngp13.phx.gbl...
Bonsoir Michel,
Tu découvres les problèmes de la migration vers SQL.
Oui :-)
Pour la sélection sur les dates, utilises le format 'YYYY/MM/DD'.
Mieux, utilise le format ISO 'YYYYMMDD'.
La manipulation des dates est très différente avec access et SQL mais on
s'habitue très bien.
Pour les formulaires et états, n'essaie pas d'utiliser l'assistant de
conversion, le résultat est épouvantable.
A bientôt, je suppose :-)
Oui et merci beaucoup Jean-Pierre, surtout pour m'avoir appris le format ISO
'YYYMMDD'.
Je te fais part ici de mes premières questions en essayant de faire tourner
mon code avec SQL Serveur.
Je récupère des mois, jours et années d'un peu de partout dans mon code ASP,
il faut que je teste avant de construire cette chaîne pour rajouter un "0"
si le jour ou le mois est inférieur à 10.
Parce que "20031225" il comprend mais "2003121" non, c'est logique.
J'avais :
date_sql = nJour&"/"&nMois&"/"&nAnnee
et maintenant :
date_sql = nAnnee
if (nMois < 10) then
date_sql = date_sql&"0"&nMois
else
date_sql = date_sql&nMois
end if
if (nJour < 10) then
date_sql = date_sql&"0"&nJour
else
date_sql = date_sql&nJour
end if
J'ai écris cela très (trop) rapidement, mais j'imagine qu'il y a mieux à
faire ??
Et un peu plus loin dans mon code, la commande :
DateDiff("d",Date(),date_sql)
ne fonctionne bien sûr plus. Au lieu d'avoir une chaîne pour la date
temporaire, il m'en faut deux : une pour SQL Serveur et une autre pour le
code ASP ?
Une autre question qui me viens à l'esprit : quelle est la meilleure syntaxe
à utiliser dans une requête qui doit me retourner toues les enregistrements
correspondant à un mois et une année ?
"...WHERE Month(date_en_base) = Mois_donne AND Year(date_en_base) > Annee_Donnee..." ??
J'essai de regrouper toutes les meilleures choses à faire avant de retaper
tout mon code, mais, pour changer je suis pressé par le temps.
Pour le format ISO, il est surtout utile si tu développes un projet Access ADP, car YYYY/MM/DD qui marche avec Access 2000/SQL ne marche pas avec Access XP/SQL. Mais ce format n'est reconnu que par SQL server et utilisable seulement dans tes requêtes SQL.
Dans ce cas, le plus simple est une fonction:
Function ConvDateISO(ByVal Wdate As Date) ConvDateISO = Year(Wdate) & Format(Month(Wdate), "00") & Format(Day(Wdate), "00") End Function
Et ta requête: WHERE maDate = '" & ConvDateIso(monChampDate) & "'"
Sinon, avec du code ASP, tu peux très bien utiliser YYYY/MM/DD et une fonction
Public Function ConvDateUS(ByVal Wdate As Date) ConvDateUS = Year(Wdate) & "/" & Month(Wdate) & "/" & Day(Wdate) End Function.
Comme ça, tu ne te poses pas de questions avec les paramètres régionaux, tes DateAdd et DateDiff vont toujours fonctionner. Il faudra que tu fasses encore des essais pour voir le format exact que te retourne SQL. Si tu as des problèmes, reviens.....
J-Pierre
"Michel _newbie" a écrit dans le message de news:%
"J-Pierre" a écrit dans le message de news:eh2%
Bonsoir Michel,
Tu découvres les problèmes de la migration vers SQL.
Oui :-)
Pour la sélection sur les dates, utilises le format 'YYYY/MM/DD'. Mieux, utilise le format ISO 'YYYYMMDD'.
La manipulation des dates est très différente avec access et SQL mais on s'habitue très bien.
Pour les formulaires et états, n'essaie pas d'utiliser l'assistant de conversion, le résultat est épouvantable.
A bientôt, je suppose :-)
Oui et merci beaucoup Jean-Pierre, surtout pour m'avoir appris le format ISO 'YYYMMDD'. Je te fais part ici de mes premières questions en essayant de faire tourner mon code avec SQL Serveur.
Je récupère des mois, jours et années d'un peu de partout dans mon code ASP, il faut que je teste avant de construire cette chaîne pour rajouter un "0" si le jour ou le mois est inférieur à 10. Parce que "20031225" il comprend mais "2003121" non, c'est logique.
J'avais :
date_sql = nJour&"/"&nMois&"/"&nAnnee
et maintenant :
date_sql = nAnnee if (nMois < 10) then date_sql = date_sql&"0"&nMois else date_sql = date_sql&nMois end if if (nJour < 10) then date_sql = date_sql&"0"&nJour else date_sql = date_sql&nJour end if
J'ai écris cela très (trop) rapidement, mais j'imagine qu'il y a mieux à faire ??
Et un peu plus loin dans mon code, la commande :
DateDiff("d",Date(),date_sql)
ne fonctionne bien sûr plus. Au lieu d'avoir une chaîne pour la date temporaire, il m'en faut deux : une pour SQL Serveur et une autre pour le code ASP ?
Une autre question qui me viens à l'esprit : quelle est la meilleure syntaxe à utiliser dans une requête qui doit me retourner toues les enregistrements correspondant à un mois et une année ? "...WHERE Month(date_en_base) = Mois_donne AND Year(date_en_base) > Annee_Donnee..." ??
J'essai de regrouper toutes les meilleures choses à faire avant de retaper tout mon code, mais, pour changer je suis pressé par le temps.
Merci encore
Michel
Michel _newbie
"J-Pierre" a écrit dans le message de news:%23CL4H%
Bonjour Michel,
Pour le format ISO, il est surtout utile si tu développes un projet Access ADP, car YYYY/MM/DD qui marche avec Access 2000/SQL ne
marche pas avec Access XP/SQL. Mais ce format n'est reconnu que par SQL server et utilisable seulement dans tes requêtes SQL.
Dans ce cas, le plus simple est une fonction:
Function ConvDateISO(ByVal Wdate As Date) ConvDateISO = Year(Wdate) & Format(Month(Wdate), "00") & Format(Day(Wdate), "00")
End Function
Et ta requête: WHERE maDate = '" & ConvDateIso(monChampDate) & "'"
Sinon, avec du code ASP, tu peux très bien utiliser YYYY/MM/DD et une fonction
Public Function ConvDateUS(ByVal Wdate As Date) ConvDateUS = Year(Wdate) & "/" & Month(Wdate) & "/" & Day(Wdate) End Function.
Comme ça, tu ne te poses pas de questions avec les paramètres régionaux, tes DateAdd et DateDiff vont toujours fonctionner. Il
faudra que tu fasses encore des essais pour voir le format exact que te retourne SQL. Si tu as des problèmes, reviens.....
Je reviens donc Jean-Pierre, mais pour te dire que ce n'est pas si
dramatique, j'ai placé justement la date au format long (dans les paramètres régionaux) à "JJ/MM/AAAA". Et SQL Serveur à l'air de fortement se reposer sur ce format... et cela m'arrange plutôt pour l'instant. J'ai réalisé ma première mesure de temps : une page met 15 secondes à afficher des données provenant d'Access. En reprenant ces mêmes données sous SQL Serveur, elle ne mettait plus que 5 secondes... et enfin 3 secondes après avoir remis les index ! Je sens que je vais bosser pour quelque chose de visible, c'est plutôt encouragent.
Merci à toi, je reviendrais... qui sait
Michel
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de
news:%23CL4H%23YuDHA.2448@TK2MSFTNGP09.phx.gbl...
Bonjour Michel,
Pour le format ISO, il est surtout utile si tu développes un projet Access
ADP, car YYYY/MM/DD qui marche avec Access 2000/SQL ne
marche pas avec Access XP/SQL. Mais ce format n'est reconnu que par SQL
server et utilisable seulement dans tes requêtes SQL.
Dans ce cas, le plus simple est une fonction:
Function ConvDateISO(ByVal Wdate As Date)
ConvDateISO = Year(Wdate) & Format(Month(Wdate), "00") &
Format(Day(Wdate), "00")
End Function
Et ta requête:
WHERE maDate = '" & ConvDateIso(monChampDate) & "'"
Sinon, avec du code ASP, tu peux très bien utiliser YYYY/MM/DD et une
fonction
Public Function ConvDateUS(ByVal Wdate As Date)
ConvDateUS = Year(Wdate) & "/" & Month(Wdate) & "/" & Day(Wdate)
End Function.
Comme ça, tu ne te poses pas de questions avec les paramètres régionaux,
tes DateAdd et DateDiff vont toujours fonctionner. Il
faudra que tu fasses encore des essais pour voir le format exact que te
retourne SQL. Si tu as des problèmes, reviens.....
Je reviens donc Jean-Pierre, mais pour te dire que ce n'est pas si
dramatique, j'ai placé justement la date au format long (dans les paramètres
régionaux) à "JJ/MM/AAAA".
Et SQL Serveur à l'air de fortement se reposer sur ce format... et cela
m'arrange plutôt pour l'instant.
J'ai réalisé ma première mesure de temps : une page met 15 secondes à
afficher des données provenant d'Access. En reprenant ces mêmes données sous
SQL Serveur, elle ne mettait plus que 5 secondes... et enfin 3 secondes
après avoir remis les index !
Je sens que je vais bosser pour quelque chose de visible, c'est plutôt
encouragent.
"J-Pierre" a écrit dans le message de news:%23CL4H%
Bonjour Michel,
Pour le format ISO, il est surtout utile si tu développes un projet Access ADP, car YYYY/MM/DD qui marche avec Access 2000/SQL ne
marche pas avec Access XP/SQL. Mais ce format n'est reconnu que par SQL server et utilisable seulement dans tes requêtes SQL.
Dans ce cas, le plus simple est une fonction:
Function ConvDateISO(ByVal Wdate As Date) ConvDateISO = Year(Wdate) & Format(Month(Wdate), "00") & Format(Day(Wdate), "00")
End Function
Et ta requête: WHERE maDate = '" & ConvDateIso(monChampDate) & "'"
Sinon, avec du code ASP, tu peux très bien utiliser YYYY/MM/DD et une fonction
Public Function ConvDateUS(ByVal Wdate As Date) ConvDateUS = Year(Wdate) & "/" & Month(Wdate) & "/" & Day(Wdate) End Function.
Comme ça, tu ne te poses pas de questions avec les paramètres régionaux, tes DateAdd et DateDiff vont toujours fonctionner. Il
faudra que tu fasses encore des essais pour voir le format exact que te retourne SQL. Si tu as des problèmes, reviens.....
Je reviens donc Jean-Pierre, mais pour te dire que ce n'est pas si
dramatique, j'ai placé justement la date au format long (dans les paramètres régionaux) à "JJ/MM/AAAA". Et SQL Serveur à l'air de fortement se reposer sur ce format... et cela m'arrange plutôt pour l'instant. J'ai réalisé ma première mesure de temps : une page met 15 secondes à afficher des données provenant d'Access. En reprenant ces mêmes données sous SQL Serveur, elle ne mettait plus que 5 secondes... et enfin 3 secondes après avoir remis les index ! Je sens que je vais bosser pour quelque chose de visible, c'est plutôt encouragent.
Merci à toi, je reviendrais... qui sait
Michel
J-Pierre
Le problème, c'est que tu dépends des paramètres régionaux de chaque utilisateur
J-Pierre
"Michel _newbie" a écrit dans le message de news:uDHy$
"J-Pierre" a écrit dans le message de news:%23CL4H%
Je reviens donc Jean-Pierre, mais pour te dire que ce n'est pas si
dramatique, j'ai placé justement la date au format long (dans les paramètres régionaux) à "JJ/MM/AAAA". Et SQL Serveur à l'air de fortement se reposer sur ce format... et cela m'arrange plutôt pour l'instant. J'ai réalisé ma première mesure de temps : une page met 15 secondes à afficher des données provenant d'Access. En reprenant ces mêmes données sous SQL Serveur, elle ne mettait plus que 5 secondes... et enfin 3 secondes après avoir remis les index ! Je sens que je vais bosser pour quelque chose de visible, c'est plutôt encouragent.
Merci à toi, je reviendrais... qui sait
Michel
Le problème, c'est que tu dépends des paramètres régionaux de chaque utilisateur
J-Pierre
"Michel _newbie" <martin.michel8@wanadooo.fr> a écrit dans le message de news:uDHy$eauDHA.2148@TK2MSFTNGP12.phx.gbl...
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de
news:%23CL4H%23YuDHA.2448@TK2MSFTNGP09.phx.gbl...
Je reviens donc Jean-Pierre, mais pour te dire que ce n'est pas si
dramatique, j'ai placé justement la date au format long (dans les paramètres
régionaux) à "JJ/MM/AAAA".
Et SQL Serveur à l'air de fortement se reposer sur ce format... et cela
m'arrange plutôt pour l'instant.
J'ai réalisé ma première mesure de temps : une page met 15 secondes à
afficher des données provenant d'Access. En reprenant ces mêmes données sous
SQL Serveur, elle ne mettait plus que 5 secondes... et enfin 3 secondes
après avoir remis les index !
Je sens que je vais bosser pour quelque chose de visible, c'est plutôt
encouragent.
Le problème, c'est que tu dépends des paramètres régionaux de chaque utilisateur
J-Pierre
"Michel _newbie" a écrit dans le message de news:uDHy$
"J-Pierre" a écrit dans le message de news:%23CL4H%
Je reviens donc Jean-Pierre, mais pour te dire que ce n'est pas si
dramatique, j'ai placé justement la date au format long (dans les paramètres régionaux) à "JJ/MM/AAAA". Et SQL Serveur à l'air de fortement se reposer sur ce format... et cela m'arrange plutôt pour l'instant. J'ai réalisé ma première mesure de temps : une page met 15 secondes à afficher des données provenant d'Access. En reprenant ces mêmes données sous SQL Serveur, elle ne mettait plus que 5 secondes... et enfin 3 secondes après avoir remis les index ! Je sens que je vais bosser pour quelque chose de visible, c'est plutôt encouragent.