Сравните Oracle Date с C # DateTime - PullRequest
4 голосов
/ 27 августа 2011

Я строю встроенный SQL-запрос (не нужно комментировать это, я знаю, что это не лучший метод, а то, как компания работает!), И мне нужно сравнить столбец Oracle DATE с C # DateTime.Now. Какие преобразования мне нужно поместить вокруг DateTime.Now и столбца, чтобы это сравнение работало? (Я хочу сравнить весь объект DateTime, а не только часть Date)

1 Ответ

11 голосов
/ 27 августа 2011

Вы можете использовать функцию Oracle TO_DATE .

WHERE someDateColumn <= TO_DATE(c#_date, 'YYYY/MM/DD')

Для даты c # (см. пользовательские строки даты и времени ):

DateTime.Now.ToString("yyyy/MM/dd")

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

edit - На самом деле, поскольку вы упомянули все, а не только дату, я добавлю ее.:)

WHERE someDateColumn <= TO_DATE(c#_date, 'YYYY/MM/DD HH24:MI:SS')
DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")

Дома, поэтому я не могу запустить его, но это должно сработать.

Чтобы создать строку с предложением where, вы должны сделать это:

string someQuery = "SELECT * FROM aTable WHERE someDateColumn <=  TO_DATE('" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "', 'YYYY/MM/DD')"

Если вы хотите использовать конкретную дату, а не DateTime.Now, просто поместите вместо нее переменную, содержащую ее.

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