sql передача даты в дату и время - PullRequest
0 голосов
/ 15 марта 2012

У меня есть несколько пользовательских элементов управления, которые я сделал в wpf и которые управляются двумя датчиками. Один инструмент выбора контролирует начало диапазона дат, а другой - конец диапазона дат.

У меня были проблемы со свойством datepicker.selecteddate, которое давало мне время вместе с датой, и тогда мои результаты sql не были все там, потому что переданное во времени значение отфильтровывало многие мои результаты. В итоге я обнаружил, что, если я отформатировал это время до полуночи, все мои результаты были там, но каждый раз, когда я выбирал новый выбор в указателе даты, он сбрасывал форматированное время.

После некоторого тестирования я обнаружил, что могу просто передать значение текстового свойства datepicker в качестве параметра. Значение этого свойства является строковым типом и устанавливается равным значению даты текущей выбранной даты (например, 14.03.2012 5:00:32 AM - выбранная дата, тогда как «3/14/2012» - текстовое значение).

Пока что, к удивлению, это, кажется, возвращает все мои результаты, которые я хотел.

Мне было интересно, почему это на самом деле работает (это потому, что литеральный формат 'mdy' поддерживается и используется по умолчанию?), И есть ли какие-либо негативные недостатки в том, что я делаю? Я знаю много раз только потому, что что-то работает, не означает, что вы должны использовать это в производстве. Я делюсь таблицами с другими, или я просто конвертирую поля и параметры даты и времени в дату, и все будет готово.

Надеюсь, мой вопрос имеет смысл. Иногда они этого не делают. Если есть вопросы, оставляйте комментарии, и я буду вмешиваться.

1 Ответ

0 голосов
/ 15 марта 2012

Что касается отрицательных недостатков, я не вижу никаких - это то, как мы справляемся с этим во многих приложениях / БД. Однако, как я обычно это делаю, если добавляемая запись не требует времени (т.е. BusinessDate, LoadDate), тогда я добавляю запись только с датой и без времени - поэтому значение всегда находится в формате 3/14/2012 12:00:00 AM который, я думаю, значительно упрощает запросы, так как вам не нужно иметь дело со временем

Затем в моем пользовательском интерфейсе (winforms) при выполнении поиска по дате с помощью datetimepicker я использую datetimepicker.Value.Date, который дает дату в аналогичном формате (3/14/2012 12:00:00 AM).

Если у вас есть поле в таблице, для которого требуется дата и время, используйте его, и вы можете искать дату, отформатировав дату в таблице или используя date > yourdate AND date <= yourdate, которая будет включать в себя дату, которую вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...