SQL Server Datetime конвертировать из строки - PullRequest
2 голосов
/ 01 ноября 2011

Извините, что снова спрашиваю .. у меня проблема, когда я пытался вставить дату и время из поля.Проблема в синтаксической ошибке преобразования даты / времени из символьной строки. Я использую SQL Server 2000. Ниже приведен мой код

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

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

Очень ценю это. Спасибо

С уважением -GreenCat-

Ответы [ 4 ]

2 голосов
/ 01 ноября 2011
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 голосов
/ 01 ноября 2011

Это работает в SQL Query Analyzer:

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 голосов
/ 01 ноября 2011

вы можете попробовать это

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 голосов
/ 01 ноября 2011

Полагаю, вам следует проверить формат строки даты, которая анализируется в запросе.102 в Convert указывает SQL, в каком формате пытаться обработать вашу строковую дату. Обратитесь к этой странице (http://msdn.microsoft.com/en-us/library/ms187928.aspx), чтобы узнать, какой формат вы используете.

Если вы все ещеЕсли у вас возникли проблемы, можете ли вы опубликовать значение Trim(Request("StartDate"))?

Я не рядом с моим ПК для разработки, но вы можете попробовать отформатировать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...