j ai un soucis de precision entre la construction d un
datetime en ASPX et en SQL Server
je m explique
ds mon datagrid je recupere et construit un datetime via
2 champ datefin et heurefin
dteFin = CDate(CType(dgItem.Cells(25).Controls(1),
TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls
(1), TextBox).Text)
ensuite je passe en parametre cette valeur via un sql
......
where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple
dteFin=18/10/2004 05:18:36
cette meme construction par sql me donne
2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne devrais
pas avoir
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
F.S
Bonjour, - Dans votre code sql utilisez CONVERT(DATETIME, XXX) ou CAST(@Mydate AS DATETIME) - Dans la clause WHERE utilisez plutot DATEDIFF pour comparer les dates et non pas > = <. - et enfin modifier le format de la date sur le serveur SQL dans "Options régionales" F.S "Rahan" a écrit :
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime via 2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ....... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne devrais pas avoir
une idee ?????????
Bonjour,
- Dans votre code sql utilisez CONVERT(DATETIME, XXX) ou CAST(@Mydate AS
DATETIME)
- Dans la clause WHERE utilisez plutot DATEDIFF pour comparer les dates et
non pas > = <.
- et enfin modifier le format de la date sur le serveur SQL dans "Options
régionales"
F.S
"Rahan" a écrit :
Salut a tous
j ai un soucis de precision entre la construction d un
datetime en ASPX et en SQL Server
je m explique
ds mon datagrid je recupere et construit un datetime via
2 champ datefin et heurefin
dteFin = CDate(CType(dgItem.Cells(25).Controls(1),
TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls
(1), TextBox).Text)
ensuite je passe en parametre cette valeur via un sql
.......
where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple
dteFin/10/2004 05:18:36
cette meme construction par sql me donne
2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne devrais
pas avoir
Bonjour, - Dans votre code sql utilisez CONVERT(DATETIME, XXX) ou CAST(@Mydate AS DATETIME) - Dans la clause WHERE utilisez plutot DATEDIFF pour comparer les dates et non pas > = <. - et enfin modifier le format de la date sur le serveur SQL dans "Options régionales" F.S "Rahan" a écrit :
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime via 2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ....... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne devrais pas avoir
une idee ?????????
Fred BROUARD
Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE (DT DATETIME)
INSERT INTO T_DATE SELECT CAST('20041018 05:18:36' AS DATETIME)
N'auriez vous pas par hasard utilisé un type SMALLDATETIME ?
Sinon, sachez que la précision de SQL Server est de 3 millième de seconde (et non 3 centième comme annoncé par erreur dans l'aide en ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime via 2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ...... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne devrais pas avoir
une idee ?????????
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE
(DT DATETIME)
INSERT INTO T_DATE
SELECT CAST('20041018 05:18:36' AS DATETIME)
N'auriez vous pas par hasard utilisé un type SMALLDATETIME ?
Sinon, sachez que la précision de SQL Server est de 3 millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un
datetime en ASPX et en SQL Server
je m explique
ds mon datagrid je recupere et construit un datetime via
2 champ datefin et heurefin
dteFin = CDate(CType(dgItem.Cells(25).Controls(1),
TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls
(1), TextBox).Text)
ensuite je passe en parametre cette valeur via un sql
......
where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple
dteFin/10/2004 05:18:36
cette meme construction par sql me donne
2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne devrais
pas avoir
une idee ?????????
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
N'auriez vous pas par hasard utilisé un type SMALLDATETIME ?
Sinon, sachez que la précision de SQL Server est de 3 millième de seconde (et non 3 centième comme annoncé par erreur dans l'aide en ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime via 2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ...... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne devrais pas avoir
une idee ?????????
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Rahan
effectivement je suis en smalldatetime !!
-----Message d'origine----- Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE (DT DATETIME)
INSERT INTO T_DATE SELECT CAST('20041018 05:18:36' AS DATETIME)
Sinon, sachez que la précision de SQL Server est de 3
millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en
ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime
via
2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ...... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne
devrais
pas avoir
une idee ?????????
-- Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste 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
*************************
.
effectivement je suis en smalldatetime !!
-----Message d'origine-----
Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE
(DT DATETIME)
INSERT INTO T_DATE
SELECT CAST('20041018 05:18:36' AS DATETIME)
Sinon, sachez que la précision de SQL Server est de 3
millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en
ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un
datetime en ASPX et en SQL Server
je m explique
ds mon datagrid je recupere et construit un datetime
via
2 champ datefin et heurefin
dteFin = CDate(CType(dgItem.Cells(25).Controls(1),
TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls
(1), TextBox).Text)
ensuite je passe en parametre cette valeur via un sql
......
where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple
dteFin=18/10/2004 05:18:36
cette meme construction par sql me donne
2004-10-18 05:18:35.997
Sinon, sachez que la précision de SQL Server est de 3
millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en
ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime
via
2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ...... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne
devrais
pas avoir
une idee ?????????
-- Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste 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
*************************
.
Rahan
excuse je viens de dire des betises !!
je suis bien en datetime, concernant l exemple, quand je fait select DateFin+convert(float,heurefin)/24 avec un datefin quelconque et heurefin 5.31 par ex sql me donne : 2004-10-18 05:18:35.997 alors que sous vb .net 2004-10-18 05:18:36.000
c la le pb qui se pose
A+
-----Message d'origine----- Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE (DT DATETIME)
INSERT INTO T_DATE SELECT CAST('20041018 05:18:36' AS DATETIME)
Sinon, sachez que la précision de SQL Server est de 3
millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en
ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime
via
2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ...... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne
devrais
pas avoir
une idee ?????????
-- Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste 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
*************************
.
excuse je viens de dire des betises !!
je suis bien en datetime, concernant l exemple, quand je
fait select DateFin+convert(float,heurefin)/24
avec un datefin quelconque et heurefin 5.31 par ex
sql me donne :
2004-10-18 05:18:35.997
alors que sous vb .net
2004-10-18 05:18:36.000
c la le pb qui se pose
A+
-----Message d'origine-----
Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE
(DT DATETIME)
INSERT INTO T_DATE
SELECT CAST('20041018 05:18:36' AS DATETIME)
Sinon, sachez que la précision de SQL Server est de 3
millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en
ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un
datetime en ASPX et en SQL Server
je m explique
ds mon datagrid je recupere et construit un datetime
via
2 champ datefin et heurefin
dteFin = CDate(CType(dgItem.Cells(25).Controls(1),
TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls
(1), TextBox).Text)
ensuite je passe en parametre cette valeur via un sql
......
where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple
dteFin=18/10/2004 05:18:36
cette meme construction par sql me donne
2004-10-18 05:18:35.997
je suis bien en datetime, concernant l exemple, quand je fait select DateFin+convert(float,heurefin)/24 avec un datefin quelconque et heurefin 5.31 par ex sql me donne : 2004-10-18 05:18:35.997 alors que sous vb .net 2004-10-18 05:18:36.000
c la le pb qui se pose
A+
-----Message d'origine----- Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE (DT DATETIME)
INSERT INTO T_DATE SELECT CAST('20041018 05:18:36' AS DATETIME)
Sinon, sachez que la précision de SQL Server est de 3
millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en
ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime
via
2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ...... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne
devrais
pas avoir
une idee ?????????
-- Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste 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
*************************
.
Fred BROUARD
c'est un peu normal : le float ne représenta pas exactement un décimal. Il induit donc des calculs d'arrondis. Essaye de modifier la strutucre de ton expression, du genre :
SELECT CAST((((CAST(DateFin AS FLOAT) * 24) +heurefin) / 24 ) AS DATETIME)
Cela peut provenir d'un problème classique en informatique / mesure physique : erreur d'écart d'arrondis.
A +
Rahan a écrit:
excuse je viens de dire des betises !!
je suis bien en datetime, concernant l exemple, quand je fait select DateFin+convert(float,heurefin)/24 avec un datefin quelconque et heurefin 5.31 par ex sql me donne : 2004-10-18 05:18:35.997 alors que sous vb .net 2004-10-18 05:18:36.000
c la le pb qui se pose
A+
-----Message d'origine----- Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE (DT DATETIME)
INSERT INTO T_DATE SELECT CAST('20041018 05:18:36' AS DATETIME)
Sinon, sachez que la précision de SQL Server est de 3
millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en
ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime
via
2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ...... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne
devrais
pas avoir
une idee ?????????
-- Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste 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
*************************
.
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
c'est un peu normal : le float ne représenta pas exactement un décimal. Il
induit donc des calculs d'arrondis.
Essaye de modifier la strutucre de ton expression, du genre :
SELECT CAST((((CAST(DateFin AS FLOAT) * 24) +heurefin) / 24 ) AS DATETIME)
Cela peut provenir d'un problème classique en informatique / mesure physique :
erreur d'écart d'arrondis.
A +
Rahan a écrit:
excuse je viens de dire des betises !!
je suis bien en datetime, concernant l exemple, quand je
fait select DateFin+convert(float,heurefin)/24
avec un datefin quelconque et heurefin 5.31 par ex
sql me donne :
2004-10-18 05:18:35.997
alors que sous vb .net
2004-10-18 05:18:36.000
c la le pb qui se pose
A+
-----Message d'origine-----
Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE
(DT DATETIME)
INSERT INTO T_DATE
SELECT CAST('20041018 05:18:36' AS DATETIME)
Sinon, sachez que la précision de SQL Server est de 3
millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en
ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un
datetime en ASPX et en SQL Server
je m explique
ds mon datagrid je recupere et construit un datetime
via
2 champ datefin et heurefin
dteFin = CDate(CType(dgItem.Cells(25).Controls(1),
TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls
(1), TextBox).Text)
ensuite je passe en parametre cette valeur via un sql
......
where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple
dteFin/10/2004 05:18:36
cette meme construction par sql me donne
2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne
devrais
pas avoir
une idee ?????????
--
Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste 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
*************************
.
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
c'est un peu normal : le float ne représenta pas exactement un décimal. Il induit donc des calculs d'arrondis. Essaye de modifier la strutucre de ton expression, du genre :
SELECT CAST((((CAST(DateFin AS FLOAT) * 24) +heurefin) / 24 ) AS DATETIME)
Cela peut provenir d'un problème classique en informatique / mesure physique : erreur d'écart d'arrondis.
A +
Rahan a écrit:
excuse je viens de dire des betises !!
je suis bien en datetime, concernant l exemple, quand je fait select DateFin+convert(float,heurefin)/24 avec un datefin quelconque et heurefin 5.31 par ex sql me donne : 2004-10-18 05:18:35.997 alors que sous vb .net 2004-10-18 05:18:36.000
c la le pb qui se pose
A+
-----Message d'origine----- Aucun soucis de mon coté sur un type DATETIME :
CREATE TABLE T_DATE (DT DATETIME)
INSERT INTO T_DATE SELECT CAST('20041018 05:18:36' AS DATETIME)
Sinon, sachez que la précision de SQL Server est de 3
millième de seconde (et
non 3 centième comme annoncé par erreur dans l'aide en
ligne)
A +
Rahan a écrit:
Salut a tous
j ai un soucis de precision entre la construction d un datetime en ASPX et en SQL Server je m explique
ds mon datagrid je recupere et construit un datetime
via
2 champ datefin et heurefin dteFin = CDate(CType(dgItem.Cells(25).Controls(1), TextBox).Text).AddHours(CType(dgItem.Cells(26).Controls (1), TextBox).Text) ensuite je passe en parametre cette valeur via un sql ...... where DateFin+convert(float,heurefin)/24>@DateFin
et la j ai un soucis de precision car si par exemple dteFin/10/2004 05:18:36 cette meme construction par sql me donne 2004-10-18 05:18:35.997
et donc mon sql me ramene des valeurs que je ne
devrais
pas avoir
une idee ?????????
-- Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste 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
*************************
.
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************