манипулирование датой и временем из типа сервера datetime sql в vb.net - PullRequest
1 голос
/ 25 августа 2011

Я пытаюсь создать сайт аукциона, используя asp.net. Дата и время начала и окончания моего аукциона хранятся в моей базе данных sql server 2008 r2 как типы datetime. Я использую vb.net. Я пытаюсь создать оператор выбора, в котором я могу запросить часть даты и времени относительно текущей даты и времени (чтобы отображать только текущие текущие аукционы). Я могу успешно запросить часть даты, используя функцию Date.Now, но время доставляет мне хлопоты. DateAndTime.Now не работает. Я даже пытался разделить время и дату в базе данных, но все еще не могу получить эффективный запрос.

Вот два примера кода, который я пробовал:

Dim Connection As SqlConnection = New SqlConnection(...)
    Dim Command As SqlCommand = New SqlCommand()
    Dim _Reader As SqlDataReader
    Command.Connection = Connection
    Command.CommandText = "Select ... from Auctions where Start_Date_Time > " & DateAndTime.Now & " And End_Date_Time > " & DateAndTime.Now

, где Start_Date_Time и End_Date_Time имеют тип DateTime.

И

Dim Connection As SqlConnection = New SqlConnection(...)
    Dim Command As SqlCommand = New SqlCommand()
    Dim _Reader As SqlDataReader
    Command.Connection = Connection
    Command.CommandText = "Select ... from Auctions where Start_Date >= " & Date.Today & "Start_Time <= " & DateAndTime.Now.ToLongTimeString & " And End_Date >= " & Date.Today & " And End_Time <= " & DateAndTime.Now.ToLongTimeString

, где Start_Date и End_Date имеют тип Date, а Start_Time и End_Time имеют тип Time (7).

Любые предложения приветствуются, Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 25 августа 2011

Вы пытались использовать свойство DateAndTime.TimeString ?

TimeString always returns the system time as "HH:mm:ss", which is a 24-hour format. Таким образом, в зависимости от того, как временная часть вашего DateTime хранится в вашей БД, вам может потребоваться сделать некоторыеформатирование.

Dim Connection As SqlConnection = New SqlConnection(...) 
Dim Command As SqlCommand = New SqlCommand()
Dim _Reader As SqlDataReader
Command.Connection = Connection          
Command.CommandText = "Select ... from Auctions where Start_Date >= " & Date.Today & "Start_Time <= " & DateAndTime.TimeString & " And End_Date >= " & Date.Today & " And End_Time <= " & DateAndTime.TimeString      
0 голосов
/ 25 августа 2011

Спасибо за предложения, ребята.Это была простая ошибка с моей стороны.Все, что мне нужно было сделать, это поместить DateAndTime.Now в кавычки.

Итак, этот код работает:

Dim Connection As SqlConnection = New SqlConnection(...)
Dim Command As SqlCommand = New SqlCommand()
Dim _Reader As SqlDataReader
Command.Connection = Connection
Command.CommandText = "Select ... from Auctions where Start_Date_Time <= '" & DateAndTime.Now & "' And End_Date_Time >= '" & DateAndTime.Now & "'"
0 голосов
/ 25 августа 2011
dim myDateTime as Datetime = Now()

...

Select ... from Auctions where Start_Date_Time > " & myDateTime.ToShortTimeString() & ...

http://msdn.microsoft.com/en-us/library/system.datetime.toshorttimestring.aspx

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