Salut, mes dates sont en format numériques. Esperanza
"Oliv'" <(supprimerceci) a écrit dans le message de news:41addc6e$0$18029$
Salut, il faut que tes dates soientt quoté : '
sPresences.Source = "SELECT * FROM dbo.vInscriptions where (datedebut > '" & Datedebutant & "' and datedebut <= '" & DateFinissant & "') ORDER BY " & varOrder
Oliv'
"Esperanza" a écrit dans le message de news:
sPresences.Source = "SELECT * FROM dbo.vInscriptions where (datedebut >= "
&
Datedebutant & " and datedebut <= " & DateFinissant & ") ORDER BY " & varOrder
Bonjour en essayant de rouler la requêtre sql suivante, dans une page asp, j'obtiens l'erreur suivante : Incorrect syntax near the keyword 'and'.
Mes dates sont en numériques dans mon fichiers ainsi que dans mes
variables
de parametre Datedebutant et datefinissant ex :20041101.
Merci d'avance de m'éclairer là dessus !
Esperanza
Fred BROUARD
le format de la date est une notion qui n'existe pas. Une datetime est une datetime. Si vous voulez convertir un string ou un float en date il faut utiliser une conversion explicite, à moins que vous n'ayez l'assurance que la conversion implicite puisse se faire !
Dans votre cas, la requête doit au finish s'écrire par exemple :
SELECT * FROM dbo.vInscriptions WHERE (datedebut >= '20040101' AND datedebut <= '20041231' ORDER BY varOrder
Pour que le transtypage fonctione il faut : soit une date au format ISO court : 'AAAAMMJJ hh:mm:ss nnn' soit préciser au serveur le format que l'on souhaite à l'aide du flag SET DATEFORMAT { YMD | YDM | DMY | DYM | MDY | MYD }
Dans la cas d'une conversion depuis un foat, vous devez vous assurer que le nombre est un réel codifié US. La date origine 0 est le 1er janvier 1900 et la partie décimale représente 24h.
Ainsi : SELECT CAST(0 AS DATETIME) donne : 1900-01-01 00:00:00.000
SELECT CAST(0.5 AS DATETIME) donne : 1900-01-01 12:00:00.000
Car 1/2 journée donne midi
SELECT CAST(30.0 + 8.0/24.0 AS DATETIME) donne 1900-01-31 07:59:59.970 du fait des erreurs d'arrondis du au calculs
Avec un format littéral non iso :
SELECT CAST('12-31-2004' AS DATETIME) Serveur : Msg 242, Niveau 16, État 3, Ligne 1 La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et d'heure.
il faut donc spécifier le tag DATEFORMAT :
SET DATEFORMAT MDY
SELECT CAST('12-31-2004' AS DATETIME)
2004-12-31 00:00:00.000
Le tag DATEFORMAT reste valable pendant toute la session.
A+
-- 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 *************************
Esperanza a écrit:
Salut, mes dates sont en format numériques. Esperanza
"Oliv'" <(supprimerceci) a écrit dans le message de news:41addc6e$0$18029$
Salut, il faut que tes dates soientt quoté : '
sPresences.Source = "SELECT * FROM dbo.vInscriptions where (datedebut > >
'"
& Datedebutant & "' and datedebut <= '" & DateFinissant & "') ORDER BY " & varOrder
Oliv'
"Esperanza" a écrit dans le message de news:
sPresences.Source = "SELECT * FROM dbo.vInscriptions where (datedebut >= "
&
Datedebutant & " and datedebut <= " & DateFinissant & ") ORDER BY " & varOrder
Bonjour en essayant de rouler la requêtre sql suivante, dans une page asp, j'obtiens l'erreur suivante : Incorrect syntax near the keyword 'and'.
Mes dates sont en numériques dans mon fichiers ainsi que dans mes
variables
de parametre Datedebutant et datefinissant ex :20041101.
Merci d'avance de m'éclairer là dessus !
Esperanza
le format de la date est une notion qui n'existe pas. Une datetime est une datetime.
Si vous voulez convertir un string ou un float en date il faut utiliser une
conversion explicite, à moins que vous n'ayez l'assurance que la conversion
implicite puisse se faire !
Dans votre cas, la requête doit au finish s'écrire par exemple :
SELECT *
FROM dbo.vInscriptions
WHERE (datedebut >= '20040101' AND datedebut <= '20041231'
ORDER BY varOrder
Pour que le transtypage fonctione il faut :
soit une date au format ISO court : 'AAAAMMJJ hh:mm:ss nnn'
soit préciser au serveur le format que l'on souhaite à l'aide du flag
SET DATEFORMAT { YMD | YDM | DMY | DYM | MDY | MYD }
Dans la cas d'une conversion depuis un foat, vous devez vous assurer que le
nombre est un réel codifié US. La date origine 0 est le 1er janvier 1900 et la
partie décimale représente 24h.
Ainsi :
SELECT CAST(0 AS DATETIME)
donne :
1900-01-01 00:00:00.000
SELECT CAST(0.5 AS DATETIME)
donne :
1900-01-01 12:00:00.000
Car 1/2 journée donne midi
SELECT CAST(30.0 + 8.0/24.0 AS DATETIME)
donne
1900-01-31 07:59:59.970
du fait des erreurs d'arrondis du au calculs
Avec un format littéral non iso :
SELECT CAST('12-31-2004' AS DATETIME)
Serveur : Msg 242, Niveau 16, État 3, Ligne 1
La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors
des limites des valeurs de date et d'heure.
il faut donc spécifier le tag DATEFORMAT :
SET DATEFORMAT MDY
SELECT CAST('12-31-2004' AS DATETIME)
2004-12-31 00:00:00.000
Le tag DATEFORMAT reste valable pendant toute la session.
A+
--
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 *************************
Esperanza a écrit:
Salut,
mes dates sont en format numériques.
Esperanza
"Oliv'" <(supprimerceci)catteau@ricour-assurances.fr> a écrit dans le
message de news:41addc6e$0$18029$afc38c87@news.easynet.fr...
Salut,
il faut que tes dates soientt quoté : '
sPresences.Source = "SELECT * FROM dbo.vInscriptions where (datedebut > >
'"
&
Datedebutant & "' and datedebut <= '" & DateFinissant & "') ORDER BY " &
varOrder
Oliv'
"Esperanza" <esperanza222@hotmail.com> a écrit dans le message de news:
ezIW3T71EHA.4028@TK2MSFTNGP15.phx.gbl...
sPresences.Source = "SELECT * FROM dbo.vInscriptions where (datedebut >= "
&
Datedebutant & " and datedebut <= " & DateFinissant & ") ORDER BY " &
varOrder
Bonjour en essayant de rouler la requêtre sql suivante, dans une page asp,
j'obtiens l'erreur suivante :
Incorrect syntax near the keyword 'and'.
Mes dates sont en numériques dans mon fichiers ainsi que dans mes
variables
de parametre Datedebutant et datefinissant
ex :20041101.
le format de la date est une notion qui n'existe pas. Une datetime est une datetime. Si vous voulez convertir un string ou un float en date il faut utiliser une conversion explicite, à moins que vous n'ayez l'assurance que la conversion implicite puisse se faire !
Dans votre cas, la requête doit au finish s'écrire par exemple :
SELECT * FROM dbo.vInscriptions WHERE (datedebut >= '20040101' AND datedebut <= '20041231' ORDER BY varOrder
Pour que le transtypage fonctione il faut : soit une date au format ISO court : 'AAAAMMJJ hh:mm:ss nnn' soit préciser au serveur le format que l'on souhaite à l'aide du flag SET DATEFORMAT { YMD | YDM | DMY | DYM | MDY | MYD }
Dans la cas d'une conversion depuis un foat, vous devez vous assurer que le nombre est un réel codifié US. La date origine 0 est le 1er janvier 1900 et la partie décimale représente 24h.
Ainsi : SELECT CAST(0 AS DATETIME) donne : 1900-01-01 00:00:00.000
SELECT CAST(0.5 AS DATETIME) donne : 1900-01-01 12:00:00.000
Car 1/2 journée donne midi
SELECT CAST(30.0 + 8.0/24.0 AS DATETIME) donne 1900-01-31 07:59:59.970 du fait des erreurs d'arrondis du au calculs
Avec un format littéral non iso :
SELECT CAST('12-31-2004' AS DATETIME) Serveur : Msg 242, Niveau 16, État 3, Ligne 1 La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et d'heure.
il faut donc spécifier le tag DATEFORMAT :
SET DATEFORMAT MDY
SELECT CAST('12-31-2004' AS DATETIME)
2004-12-31 00:00:00.000
Le tag DATEFORMAT reste valable pendant toute la session.
A+
-- 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 *************************
Esperanza a écrit:
Salut, mes dates sont en format numériques. Esperanza
"Oliv'" <(supprimerceci) a écrit dans le message de news:41addc6e$0$18029$
Salut, il faut que tes dates soientt quoté : '
sPresences.Source = "SELECT * FROM dbo.vInscriptions where (datedebut > >
'"
& Datedebutant & "' and datedebut <= '" & DateFinissant & "') ORDER BY " & varOrder
Oliv'
"Esperanza" a écrit dans le message de news:
sPresences.Source = "SELECT * FROM dbo.vInscriptions where (datedebut >= "
&
Datedebutant & " and datedebut <= " & DateFinissant & ") ORDER BY " & varOrder
Bonjour en essayant de rouler la requêtre sql suivante, dans une page asp, j'obtiens l'erreur suivante : Incorrect syntax near the keyword 'and'.
Mes dates sont en numériques dans mon fichiers ainsi que dans mes
variables
de parametre Datedebutant et datefinissant ex :20041101.