Page 1 sur 1

[Résolu] Date du jour

MessagePublié: 07 Nov 2006 16:45
par makyo
Bonjour,

Je suppose que la question interresse beaucoup de monde :

Comment on obtient la date du jour pour faire une requête sur un champ date ?

La solution que j'ai adopté pour le moment est de demander à l'utilisateur d'introduire la date comme ceci :
:dateDuJour_AAAAMMJJ

J'ai vu que les fonctions YEAR,... n'étaient pas encore implémentées.
Peut être avez vous une autre idée que ma solution ?

merci,
maKyo

MessagePublié: 07 Nov 2006 18:03
par audionuma
Bonjour,
pour une base intégrée,
Code : Tout sélectionner   AgrandirRéduire
SELECT * FROM "MaTable" WHERE "champ_date" = CURRENT_DATE

devrait marcher.

MessagePublié: 08 Nov 2006 12:21
par makyo
Merci pour ta réponse, ça m'a donné une idée ! :idea:

J'ai constaté une chose interressante :

En fait j'utilise un lien ODBC vers une table qui se trouve sur ISeries (AS400).

Via le menu général > Outils > SQL
J'effectue la requête suivante :

Code : Tout sélectionner   AgrandirRéduire
select * from matable
WHERE monchampdate >  CURRENT DATE


En statut il met :
[IBM][iSeries Access ODBC Driver][DB2 UDB]SQL0401 - Comparison operator > operands not compatible.

Je change ma requête :

Code : Tout sélectionner   AgrandirRéduire
select * from matable
WHERE monchampdate >  YEAR(CURRENT DATE)*10000+MONTH(CURRENT DATE)*100+DAY(CURRENT DATE)


Le statut m'indique :
Commande exécutée avec succès


Là je me dis "chouette" ça fonctionne ! 8) .... hey bien non ... :roll:
Je fais "nouvelle requête en mode SQL", je test et il me répond gentillement "Syntax error in SQL expression"

Comme d'habitude les options ne m'éclaire pas plus :

Statut SQL: HY000
Code d'erreur: 1000

syntax error, unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE

Je suppose donc que le moteur dérrière n'est pas le même, puisque d'un côté il me dis OK et de l'autre KO ! :(

Mais en somme, ça ne m'avance pas plus

MessagePublié: 08 Nov 2006 12:51
par Dude
makyo a écrit:J'ai constaté une chose interressante :

En fait j'utilise un lien ODBC vers une table qui se trouve sur ISeries (AS400).

Moi je constate que tu aurais dû donner cette info essentielle au départ de ta question.

C'est sûr que si on te donne une syntaxe SQL pour le format HSQLDB, cela ne risque pas de fonctionner sur DB2.

:evil:

MessagePublié: 08 Nov 2006 13:20
par makyo
Oui c'est vrai ! :oops:

Je pensais en fait que Base avait sa propre syntaxe puisqu'il n'accepte pas mes requêtes que je fais habituellement sur les tables, donc que ça n'avait pas d'importance.

sorry !

MessagePublié: 08 Nov 2006 17:08
par audionuma
Je fais "nouvelle requête en mode SQL", je test et il me répond gentillement "Syntax error in SQL expression"

Comme d'habitude les options ne m'éclaire pas plus :

Statut SQL: HY000
Code d'erreur: 1000

syntax error, unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE

est-ce que tu as essayé en mode sql direct, c'est à dire lorsque tu es en mode "requête en mode sql", activer la petite icône 'sql' ?

MessagePublié: 08 Nov 2006 17:27
par Dr. NOOo
Il y a peut être un problème sur le pilote odbc pour DB2 qui ne tolère pas la syntaxe tapé.

MessagePublié: 09 Nov 2006 08:59
par makyo
audionuma a écrit:est-ce que tu as essayé en mode sql direct, c'est à dire lorsque tu es en mode "requête en mode sql", activer la petite icône 'sql' ?


Non ! :oops: J'ai oublié. Un grand merci c'est ok ! ma requête passe et s'exécute !! :D

génial ! :super: