DateTime не работает в SQL Server - PullRequest
3 голосов
/ 20 июля 2011

Из моей базы данных я пытаюсь получить все записи после определенной даты.Для этого я использую запрос

SELECT * 
FROM Events_tbl 
WHERE lastupdated > '07-18-2011' and Venue=8

Этот фрагмент кода работает на моем локальном хосте.Но когда я загружаю на сервер, он ничего не возвращает.Может ли кто-нибудь помочь, пожалуйста?

Я действительно застрял.

В моей базе данных SQL Server значение datetime равно

2011-07-19 19:37:50.727

Я использую pipeten сервер в Великобритании.Я работаю на asp.net c #

Спасибо

Ответы [ 4 ]

6 голосов
/ 20 июля 2011

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

У вас нет причин выполнять преобразование текста в текст или из него, так что не делайте этого. Сохраняйте значения в их наиболее подходящем типе данных.

(Кстати, это относится ко всем значениям данных, а параметризованные запросы также помогают защитить вас от атак с использованием SQL-инъекций.)

5 голосов
/ 20 июля 2011

использовать формат даты ISO (ГГГГММДД), который безопасен для всех языков

SELECT * from Events_tbl where lastupdated > '20110718' and Venue=8
0 голосов
/ 20 июля 2011

Скорее всего, локализация вашего локального компьютера отличается от локализации на сервере, также смотрите запрос, который вы делаете, используя строковые литералы.Ваш столбец в формате varchar или в формате DateTime ?

Кстати, при работе со значениями даты и времени всегда используются специальные операнды / функции.Как:

Msdn: DateTime

С уважением.

0 голосов
/ 20 июля 2011

Дата в предложении where представлена ​​в формате даты в США, но ваш сервер находится в Великобритании.Так что вам нужно поменять месяц и дату в пункте.В Великобритании это дд / мм / гггг, а не мм / дд / гггг

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