OVH Cloud OVH Cloud

problème de datetime

4 réponses
Avatar
Mortagne
Bonjour =E0 vous tous,

j'ai derni=E8rement un certain probl=E8me avec les dates, soit=20
des variables datetime.

Pour commancer, j'ai cr=E9er une store proc qui prendre=20
comme paramaitre deux dates(@de, @a) de type datetime.
voici le format de l'appel :=20
spEGH_SelectBtPlanifWDate '2004-05-25','2004-06-16'
si je fais un select directement dans la sp pour voir les=20
deux dates pass=E9s en param cela me donner pour @de et @a,=20
respectivement :=20
2004-05-25 00:00:00.000
2004-06-16 00:00:00.000
apr=E8s cela je fais une petite op=E9ration sur les deux dates=20
pour me faire retourner la premi=E8re journ=E9e de la semaine,=20
soit le dimanche.
set @det =3D dateadd(day,( -datepart(weekday, @de))+1, @de)
set @at =3D dateadd(day, (-datepart(weekday, @a))+1, @a)
encore une fois @det et @at sont des datetime
cela me retourne
2004-05-23 00:00:00.000
2004-06-13 00:00:00.000
jusqu'=E0 pr=E9sent, aucun probl=E8me cela est parfait.
de plus cela me retourne 120 rows.

mais cette sp m'est n=E9cessaire dans une autre base de=20
donn=E9es, alors avec encore une fois, je passe en param mes=20
deux dates(@de, @a) de time datetime(c'est la m=EAme sp).
voici l'appel de la sp.
Planification.planifconn.spEGH_SelectBtPlanifWDate '2004-
25-05','2004-16-06'
et la valeur des deux dates :
2004-05-25 00:00:00.000=09
2004-06-16 00:00:00.000

par la suite j'effectue ma petite op=E9ration sur les deux=20
dates pass=E9s en param,
mais probl=E8me il me retourne :
2004-05-24 00:00:00.000=09
2004-06-14 00:00:00.000

les deux dates ne concordent pas =E0 l'ex=E9cution de la store=20
proc localement =E0 la bd.
et me retourne seulement 15 rows.

que faire ???
je ne vois absolument pas o=F9 peut =EAtre le probl=E8me ...=20
appart le fait qu'au moment du calcul, ce n'est pas les=20
bonnes valeurs, pourtant, mon select me montre que les=20
valeurs pass=E9s en param sont les valeurs retenus dans la=20
store proc....

merci de votre aide.
S=E9bastien

4 réponses

Avatar
Mortagne
Rebonjour à vous tous,

j'ai trouvé en partie mon problème, quand même bizzard,
mais le @@DATEFIRST est configurer à 1 au lieu d'être, la
valeur par defaut 7.

il existe la commande set detafirst 7
pour donner la valeur 7.

mais y a t'il un moyen pour que cela soit permanant ??

merci
Sébastien
-----Message d'origine-----
Bonjour à vous tous,

j'ai dernièrement un certain problème avec les dates,


soit
des variables datetime.

Pour commancer, j'ai créer une store proc qui prendre
comme paramaitre deux dates(@de, @a) de type datetime.
voici le format de l'appel :
spEGH_SelectBtPlanifWDate '2004-05-25','2004-06-16'
si je fais un select directement dans la sp pour voir les
deux dates passés en param cela me donner pour @de et @a,
respectivement :
2004-05-25 00:00:00.000
2004-06-16 00:00:00.000
après cela je fais une petite opération sur les deux


dates
pour me faire retourner la première journée de la


semaine,
soit le dimanche.
set @det = dateadd(day,( -datepart(weekday, @de))+1, @de)
set @at = dateadd(day, (-datepart(weekday, @a))+1, @a)
encore une fois @det et @at sont des datetime
cela me retourne
2004-05-23 00:00:00.000
2004-06-13 00:00:00.000
jusqu'à présent, aucun problème cela est parfait.
de plus cela me retourne 120 rows.

mais cette sp m'est nécessaire dans une autre base de
données, alors avec encore une fois, je passe en param


mes
deux dates(@de, @a) de time datetime(c'est la même sp).
voici l'appel de la sp.
Planification.planifconn.spEGH_SelectBtPlanifWDate '2004-
25-05','2004-16-06'
et la valeur des deux dates :
2004-05-25 00:00:00.000
2004-06-16 00:00:00.000

par la suite j'effectue ma petite opération sur les deux
dates passés en param,
mais problème il me retourne :
2004-05-24 00:00:00.000
2004-06-14 00:00:00.000

les deux dates ne concordent pas à l'exécution de la


store
proc localement à la bd.
et me retourne seulement 15 rows.

que faire ???
je ne vois absolument pas où peut être le problème ...
appart le fait qu'au moment du calcul, ce n'est pas les
bonnes valeurs, pourtant, mon select me montre que les
valeurs passés en param sont les valeurs retenus dans la
store proc....

merci de votre aide.
Sébastien

.



Avatar
Fred BROUARD
attention, le week day peut être différent d'un serveur à l'autre...

Paramétrage à voir avec DATEFIRTS

A +

Mortagne a écrit:
Bonjour à vous tous,

j'ai dernièrement un certain problème avec les dates, soit
des variables datetime.

Pour commancer, j'ai créer une store proc qui prendre
comme paramaitre deux dates(@de, @a) de type datetime.
voici le format de l'appel :
spEGH_SelectBtPlanifWDate '2004-05-25','2004-06-16'
si je fais un select directement dans la sp pour voir les
deux dates passés en param cela me donner pour @de et @a,
respectivement :
2004-05-25 00:00:00.000
2004-06-16 00:00:00.000
après cela je fais une petite opération sur les deux dates
pour me faire retourner la première journée de la semaine,
soit le dimanche.
set @det = dateadd(day,( -datepart(weekday, @de))+1, @de)
set @at = dateadd(day, (-datepart(weekday, @a))+1, @a)
encore une fois @det et @at sont des datetime
cela me retourne
2004-05-23 00:00:00.000
2004-06-13 00:00:00.000
jusqu'à présent, aucun problème cela est parfait.
de plus cela me retourne 120 rows.

mais cette sp m'est nécessaire dans une autre base de
données, alors avec encore une fois, je passe en param mes
deux dates(@de, @a) de time datetime(c'est la même sp).
voici l'appel de la sp.
Planification.planifconn.spEGH_SelectBtPlanifWDate '2004-
25-05','2004-16-06'
et la valeur des deux dates :
2004-05-25 00:00:00.000
2004-06-16 00:00:00.000

par la suite j'effectue ma petite opération sur les deux
dates passés en param,
mais problème il me retourne :
2004-05-24 00:00:00.000
2004-06-14 00:00:00.000

les deux dates ne concordent pas à l'exécution de la store
proc localement à la bd.
et me retourne seulement 15 rows.

que faire ???
je ne vois absolument pas où peut être le problème ...
appart le fait qu'au moment du calcul, ce n'est pas les
bonnes valeurs, pourtant, mon select me montre que les
valeurs passés en param sont les valeurs retenus dans la
store proc....

merci de votre aide.
Sébastien




--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Med Bouchenafa
Cela dépend de la langue de l'utilisateur
Dans SQL Server, chaque utilisateur(login) se voit affecté une base de données par défaut et un
langage par défaut
sp_helplogins te donne cette information.
Un utilisateur peut changer sa langue par defaut avec SET LANGUAGE cela change aussi les paramètres
de dates
exemple
SET LANGUAGE french
select @@language
select @@datefirst
go
SET LANGUAGE us_english
select @@language
select @@datefirst

Si tu veux avoir 7 par défaut, il faut que la langue de l'utilisateur soit english, sinon tu es
obligé de le specifier par set datefirst

Tous ses paramètres sont fixés par la table système syslanguages

select * from syslanguages


--
Bien cordialement
Med Bouchenafa
TETRASET
75015 Paris


"Mortagne" a écrit dans le message de news:
12a5c01c44320$18d3e190$
Rebonjour à vous tous,

j'ai trouvé en partie mon problème, quand même bizzard,
mais le @@DATEFIRST est configurer à 1 au lieu d'être, la
valeur par defaut 7.

il existe la commande set detafirst 7
pour donner la valeur 7.

mais y a t'il un moyen pour que cela soit permanant ??

merci
Sébastien
-----Message d'origine-----
Bonjour à vous tous,

j'ai dernièrement un certain problème avec les dates,


soit
des variables datetime.

Pour commancer, j'ai créer une store proc qui prendre
comme paramaitre deux dates(@de, @a) de type datetime.
voici le format de l'appel :
spEGH_SelectBtPlanifWDate '2004-05-25','2004-06-16'
si je fais un select directement dans la sp pour voir les
deux dates passés en param cela me donner pour @de et @a,
respectivement :
2004-05-25 00:00:00.000
2004-06-16 00:00:00.000
après cela je fais une petite opération sur les deux


dates
pour me faire retourner la première journée de la


semaine,
soit le dimanche.
set @det = dateadd(day,( -datepart(weekday, @de))+1, @de)
set @at = dateadd(day, (-datepart(weekday, @a))+1, @a)
encore une fois @det et @at sont des datetime
cela me retourne
2004-05-23 00:00:00.000
2004-06-13 00:00:00.000
jusqu'à présent, aucun problème cela est parfait.
de plus cela me retourne 120 rows.

mais cette sp m'est nécessaire dans une autre base de
données, alors avec encore une fois, je passe en param


mes
deux dates(@de, @a) de time datetime(c'est la même sp).
voici l'appel de la sp.
Planification.planifconn.spEGH_SelectBtPlanifWDate '2004-
25-05','2004-16-06'
et la valeur des deux dates :
2004-05-25 00:00:00.000
2004-06-16 00:00:00.000

par la suite j'effectue ma petite opération sur les deux
dates passés en param,
mais problème il me retourne :
2004-05-24 00:00:00.000
2004-06-14 00:00:00.000

les deux dates ne concordent pas à l'exécution de la


store
proc localement à la bd.
et me retourne seulement 15 rows.

que faire ???
je ne vois absolument pas où peut être le problème ...
appart le fait qu'au moment du calcul, ce n'est pas les
bonnes valeurs, pourtant, mon select me montre que les
valeurs passés en param sont les valeurs retenus dans la
store proc....

merci de votre aide.
Sébastien

.



Avatar
Mortagne
Merci beaucoup.

Sébastien
-----Message d'origine-----
Cela dépend de la langue de l'utilisateur
Dans SQL Server, chaque utilisateur(login) se voit


affecté une base de données par défaut et un
langage par défaut
sp_helplogins te donne cette information.
Un utilisateur peut changer sa langue par defaut avec SET


LANGUAGE cela change aussi les paramètres
de dates
exemple
SET LANGUAGE french
select @@language
select @@datefirst
go
SET LANGUAGE us_english
select @@language
select @@datefirst

Si tu veux avoir 7 par défaut, il faut que la langue de


l'utilisateur soit english, sinon tu es
obligé de le specifier par set datefirst

Tous ses paramètres sont fixés par la table système


syslanguages

select * from syslanguages


--
Bien cordialement
Med Bouchenafa
TETRASET
75015 Paris


"Mortagne" a écrit


dans le message de news:
12a5c01c44320$18d3e190$
Rebonjour à vous tous,

j'ai trouvé en partie mon problème, quand même bizzard,
mais le @@DATEFIRST est configurer à 1 au lieu d'être, la
valeur par defaut 7.

il existe la commande set detafirst 7
pour donner la valeur 7.

mais y a t'il un moyen pour que cela soit permanant ??

merci
Sébastien
-----Message d'origine-----
Bonjour à vous tous,

j'ai dernièrement un certain problème avec les dates,


soit
des variables datetime.

Pour commancer, j'ai créer une store proc qui prendre
comme paramaitre deux dates(@de, @a) de type datetime.
voici le format de l'appel :
spEGH_SelectBtPlanifWDate '2004-05-25','2004-06-16'
si je fais un select directement dans la sp pour voir les
deux dates passés en param cela me donner pour @de et @a,
respectivement :
2004-05-25 00:00:00.000
2004-06-16 00:00:00.000
après cela je fais une petite opération sur les deux


dates
pour me faire retourner la première journée de la


semaine,
soit le dimanche.
set @det = dateadd(day,( -datepart(weekday, @de))+1, @de)
set @at = dateadd(day, (-datepart(weekday, @a))+1, @a)
encore une fois @det et @at sont des datetime
cela me retourne
2004-05-23 00:00:00.000
2004-06-13 00:00:00.000
jusqu'à présent, aucun problème cela est parfait.
de plus cela me retourne 120 rows.

mais cette sp m'est nécessaire dans une autre base de
données, alors avec encore une fois, je passe en param


mes
deux dates(@de, @a) de time datetime(c'est la même sp).
voici l'appel de la sp.
Planification.planifconn.spEGH_SelectBtPlanifWDate '2004-
25-05','2004-16-06'
et la valeur des deux dates :
2004-05-25 00:00:00.000
2004-06-16 00:00:00.000

par la suite j'effectue ma petite opération sur les deux
dates passés en param,
mais problème il me retourne :
2004-05-24 00:00:00.000
2004-06-14 00:00:00.000

les deux dates ne concordent pas à l'exécution de la


store
proc localement à la bd.
et me retourne seulement 15 rows.

que faire ???
je ne vois absolument pas où peut être le problème ...
appart le fait qu'au moment du calcul, ce n'est pas les
bonnes valeurs, pourtant, mon select me montre que les
valeurs passés en param sont les valeurs retenus dans la
store proc....

merci de votre aide.
Sébastien

.





.