Преобразование строки в формат даты в SQL Server 2008 при выполнении запроса в ASP.NET - PullRequest
1 голос
/ 21 мая 2011

Я использую SqlDataSource для извлечения информации из таблицы таким образом, чтобы в сетке отображались только записи, попадающие в определенный диапазон дат. Значения диапазона дат выбираются с помощью Выбор даты в JQery UI который возвращает дату в виде строки.

Теперь вопрос заключается в том, как преобразовать эту строку в формат даты, чтобы я мог сравнить ее со значением даты, поступающим из базы данных.

Код, который у меня сейчас есть:

<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
            ConnectionString="<%$ ConnectionStrings:LicensingConnectionString %>" 


            SelectCommand="SELECT [School Name], [School City], [School State], LoginName, [Current Sales], Commission, [Pay Period start date], [Pay Period End date] FROM commissions WHERE ([Pay Period start date] &lt;= @Txt_selected_start_date) AND ([Pay Period End date] &lt;= @Txt_selected_end_date)">
            <SelectParameters>
                <asp:parameter  
                    Name="Txt_selected_start_date" Type="String" />
                <asp:Parameter Name="Txt_selected_end_date"  Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>

где Txt_selected_end_date и Txt_selected_start_date являются значениями из текстовых полей, заполненных датами из jquery UI выбора даты .

Любые предложения или предложения будут великолепны!

Ответы [ 2 ]

2 голосов
/ 21 мая 2011

Вы должны изменить тип ваших параметров на datetime вместо строки, чтобы вы сравнивали значения datetime в базе данных. В противном случае база данных выполнит преобразование из строки в дату и время, и тогда у вас будет очень мало контроля над ней.

Отправьте значения из средства выбора даты обратно на сервер в обратной передаче, например, поместив их в скрытые поля. Затем разберите строки в значения DateTime в коде и поместите значения в параметры.

0 голосов
/ 21 мая 2011

Я никогда не использовал SqlDataSource, но вот как это сделать в операторе sql

. Вы можете использовать Cast или Convert для преобразования строки вдата в T-SQL.

Например, с помощью convert

Convert(Datetime, @Txt_selected_end_date, 101)

Последний параметр - формат даты.101 мм / дд / гггг

...