2011-11-01 5 views
2

Désolé de demander à nouveau .. j'ai un problème lorsque j'ai essayé d'insérer datetime à partir du champ. Le problème est une erreur de syntaxe conversion datetime de caractère string.i'm en utilisant SQL Server 2000 ci-dessous est mon codeSQL Server Datetime convertir à partir de la chaîne

startDate = Trim(Request("StartDate")) 
endDate = Trim(Request("EndDate")) 

SELECT * 
FROM tbl_Master 
WHERE DoDate BETWEEN CONVERT(DATETIME, '"&startDate&"', 102) 
        AND CONVERT(DATETIME, '"&endDate&"', 102) 

vraiment apprécier pour that.Thanks

Cordialement -GreenCat-

+0

D'où essayez-vous d'exécuter ce code? –

+0

sql analyseur de requête et mon code d'asp – GreenCat

+0

Pourquoi ne pas vous converti en PHP à venir? –

Répondre

2
declare @startdate as varchar(10) 
declare @enddate as varchar(10) 

set @startdate='10/02/2011' 
set @enddate = '10/31/2011' 


select * from [dbo].[Test] 
where _date between Cast(@startdate AS DATETIME) and cast(@enddate as DAtetime) 
+0

ce code que vous avez déjà défini la date right.how si je reçois la date de '"& startDate &"' " – GreenCat

+0

Je voudrais faire la validation avant d'appeler la procédure stockée et de passer les paramètres dans SQL. l'entrée dans le code de votre application, puis passez à SQL.Pourquoi passer les données de la merde à SQL si vous pouvez l'attraper et traiter avec avant la main – paparush

0

Je crois que vous devriez vérifier le format de votre chaîne de date qui est analysée sur la demande. Le 102 dans le Convert, dit à SQL quel format pour tenter de traiter la date de votre chaîne. Reportez-vous à cette page (http://msdn.microsoft.com/en-us/library/ms187928.aspx) pour voir quel format vous utilisez.

Si vous rencontrez toujours des problèmes, pouvez-vous poster ce que la valeur de Trim(Request("StartDate")) est?

Je ne suis pas près de mon PC de développement, mais vous pouvez essayer le format 106 ...

startDate = Trim(Request("StartDate")) 
endDate = Trim(Request("EndDate")) 

SELECT * 
FROM tbl_Master 
WHERE DoDate BETWEEN CONVERT(DATETIME, '"&startDate&"', 106) 
        AND CONVERT(DATETIME, '"&endDate&"', 106) 
+0

valeur de la garniture 11-Oct-2011 et la valeur de la base de données 2011-01-31 00: 00:00 .. – GreenCat

+0

je vous le ferai savoir plus tard.à partir de PC un temps – GreenCat

+0

ne fonctionne toujours pas monsieur .. – GreenCat

0

vous pouvez essayer cette

declare @startDate datetime 
declare @endDate datetime 

set @startDate = value of startdate 

set @endDate = value of end date 

SELECT * FROM a WHERE a.Entry_Date BETWEEN CONVERT(DATETIME,@startDate, 102) 
       AND CONVERT(DATETIME, @endDate, 102) 
0

Cela fonctionne dans Analyseur de requêtes SQL:

SELECT CONVERT(DATETIME, '11-OCT-2011', 106) 

Je suppose que votre problème est de savoir comment ajouter votre date à une chaîne SQL. Je devine que vous avez quelque chose comme ceci dans votre code ASP ...

strSQL = "SELECT * FROM tbl_Master " & _ 
     "WHERE DoDate BETWEEN CONVERT(DATETIME, '"&startDate&"', 106) AND CONVERT(DATETIME, '"&endDate&"', 106) " 

Si oui, qui devrait fonctionner, si elle ne nous donne s'il vous plaît le texte strSQL. Avez-vous essayé de mettre des espaces entre vos esperluettes? '"& startDate &"'

+0

"SELECT * FROM DataReport WHERE emplacement comme '%" & slocation & "%' ET DATE ENTRE #" & Format (datefrom, "mm/jj/aaaa") & "# et #" & Format (dateto, "mm/jj/aaaa") & "#; "... j'essaie ce code mais le format mismatch..zzz – GreenCat

+0

Qu'est-ce que ce SQL retour de chaîne? Pouvez-vous faire une boîte de message avec la valeur de texte afin que vous puissiez obtenir la requête SQL réelle que vous envoyez à la base de données? – Daryl

+0

pouvez-vous répondre me donner votre email monsieur afin que je puisse vous envoyer mon code complet .. merci – GreenCat