ВЫБЕРИТЕ, ГДЕ дата и время больше, чем день (и не обязательно время)

1

У меня есть таблица, которая имеет столбец datetime. Я хочу вернуть все записи, дата которых больше даты ввода. Я использовал элемент управления выбора даты для даты ввода.

Другими словами, если моя таблица данных имеет только четыре строки,

2014-04-23 10:40:27.592 Abby
2014-05-23 09:40:27.592 Bobby
2014-06-01 08:53:59.320 Cathy
2014-06-05 08:53:59.320 Debbie

Когда мой элемент управления DatePicker имеет ввод 2014-06-03, выход должен быть:

2014-06-05 08:53:59.320 Debbie

Преобразуйте значение параметра dateTimePicker Control в строку перед вызовом метода select.

string FromDate = dateTimePickerFromDate.ToString()

В моем методе выбора у меня есть:

if (fromDate != null)
{
    return GetSQLDataSet(" [employeeKnownAs]  + ' ' +[employeeLastName] AS 'empName', [InsertDate]", "EmpData", "", "EmpData.InsertDate >= " + fromDate.ToString(), "InsertDate ASC", DbConnect.myDataConnection);

К сожалению, он возвращает null независимо от того, какие даты я выбираю из dateTimePicker.

Теги:
sql-server

2 ответа

0
Лучший ответ

Ваш DatePicker в любом случае возвращает часть DATE только так, как вы упомянули в своем сообщении, my DatePicker control has input of 2014-06-03. Таким образом, вам нужно CAST ваше значение DATETIME SQL для DATE в вашем SQL-запросе. Ваш запрос должен выглядеть примерно так:

select 
[employeeKnownAs],
[employeeLastName] AS 'empName', 
[InsertDate]
from EmpData
where cast(InsertDate as DATE) >=  fromDate.ToString()

Вы также можете использовать функцию SQL SERVER CONVERT() со стилем 101 стиля

CONVERT(VARCHAR,InsertDate,101) >= fromDate.ToString()
  • 0
    Я думаю, я понял вашу идею. попробовал код ниже, как вы предложили, но он по-прежнему возвращает ноль. с ошибкой компилятора, говорящей `'Неверный синтаксис рядом с', '." , Мой код ниже: return GetSQLDataSet("[employeeKnownAs] + ' ' + [employeeLastName] AS 'empName', [InsertDate]", "EmpData", "", "CAST(InsertDate AS DATE) = " + fromDate, "InsertDate ASC", DbConnect.MyDataConnection); fromDate является строкой сама по себе, поэтому нет необходимости преобразовывать ее в строку
  • 0
    @CherylGuo, ошибка компилятора и все должно быть обработано вами; не могу помочь там. за ваш пост; проблема была специфична для SQL, на который был дан ответ, и если вы выполните запрос в myanswer «как есть» в SSMS, он будет работать нормально.
1

Итак, вам нужно преобразовать datetime в правильную строку?

string FromDate = dateTimePickerFromDate.ToString("yyyy-MM-dd")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню