2011-11-01 90 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

相关问题