2011-11-01 88 views
2

對不起再次要求..我有一個問題,當我試圖從字段插入日期時間。 問題是語法錯誤使用SQL Server 2000。下面是我的代碼SQL Server日期時間從字符串轉換

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

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

真的很感謝爲that.Thanks

問候從性格string.i'm轉換日期時間 -GreenCat-

+0

你在哪裏試圖運行這段代碼? –

+0

sql查詢分析器和我的asp代碼 – GreenCat

+0

爲什麼你不用PHP轉換? –

回答

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

這段代碼你已經設置了日期right.how如果我從''&startDate&''「得到日期 – GreenCat

+0

我會在調用存儲過程並將參數傳入SQL之前進行驗證。輸入到應用程序的代碼中,然後傳遞給SQL爲什麼要將廢話數據傳遞給SQL,如果你能趕上它並且事先處理它 – paparush

0

我相信你應該檢查你的日期字符串的格式,在請求中得到解析。轉換中的102,告訴SQL嘗試處理字符串日期的格式。請參閱此頁面(http://msdn.microsoft.com/en-us/library/ms187928.aspx)以查看您使用的格式。

如果你仍然有麻煩,你可以發佈Trim(Request("StartDate"))的價值是什麼?

我不靠近我的開發PC,但你可以嘗試格式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

trim的值11-Oct-2011和數據庫的值2011-01-31 00: 00:00 .. – GreenCat

+0

我會讓你知道later.away從PC一會兒 – GreenCat

+0

仍然不工作先生.. – GreenCat

0

你可以試試這個

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

這個工作在SQL查詢分析器:

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

我猜你的問題是如何將你的日期添加到SQL字符串。我猜你有你的ASP代碼這樣的事情...

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

如果是的話,那應該工作,如果它不請給我們STRSQL文本。你有沒有嘗試在你的&號之間放置一個空格? '「& startDate &」'

+0

「SELECT * FROM DataReport WHERE位置像'%」&slocation&「%'AND DATE BETWEEN#」&格式(datefrom,「mm/dd/yyyy」)&「#和#」和格式(dateto,「mm/dd/yyyy」)& "#;「...我試試這段代碼,但是不匹配格式..zzz – GreenCat

+0

那是什麼SQL字符串返回?你可以用文本值做一個消息框,以便你可以得到你發送到數據庫的實際SQL查詢嗎? – Daryl

+0

你能回覆給我你的電子郵件先生,這樣我可以給你我的完整代碼..謝謝 – GreenCat

相關問題