vb.net даты проверки SQL - PullRequest
       4

vb.net даты проверки SQL

2 голосов
/ 28 марта 2011

По сути, у меня есть список дат в таблице SQL с статистикой рядом с каждой из них.Я хочу сравнить даты в таблице с определенной датой, которую я выбрал.Тем не менее, мои даты в моей таблице хранятся как Varchar (50) (и должны быть).Очевидно, я могу преобразовать дату в таблице в тип даты, но я не знаю.Кто-нибудь знает как?Мой текущий код можно увидеть ниже.

   If Chosen = "Today" Then
        DateStop = Today.AddDays(-1)
        Dim objCmd As New SqlCommand("SELECT COUNT(*) FROM Stats where (Date > " & DateStop & ")", objConn)
        MessageBox.Show("SELECT COUNT(*) FROM Stats where (Date > " & DateStop.Date & ")")
        ObjDataReader = objCmd.ExecuteReader
        test = ObjDataReader(0)
        MessageBox.Show(test)
    End If

Заранее спасибо.

Редактировать: я получаю сообщение об ошибке отсутствия данных, когда я знаю, что в моей таблице определенно есть даты до и после того дня, когда я пытаюсь.

Ответы [ 4 ]

0 голосов
/ 28 марта 2011

Я думаю, что вам не хватает objCmd.Read(). Или вы можете использовать objCmd.ExecuteScalar() вместо objCmd.ExecuteReader().

ObjDataReader = objCmd.ExecuteReader
ObjDataReader.Read()
test = ObjDataReader(0)
MessageBox.Show(test)

Или ...

test = objCmd.ExecuteScalar()
MessageBox.Show(test)

(Вам также могут понадобиться функции приведения или преобразования, как предлагали другие.)

0 голосов
/ 28 марта 2011

Прежде всего, вы можете использовать хранимую процедуру?

если вы это сделаете, вы можете создать SP с нужным вам кодом и добавить в начале вашего SP следующую команду

set dateformat 'ymd';

Я использовал 'ymd', но вы можете использовать и другой формат.

Если вы не можете взглянуть на функцию T-SQL CONVERT

0 голосов
/ 28 марта 2011

Вам понадобится команда Convert .

Например, для преобразования строки из стандарта ISO 8601

WHERE Date > CONVERT(datetime, '2006-04-25T15:50:59.997', 126)
0 голосов
/ 28 марта 2011
Select Count(*) From Stats where (CAST(Date as DateTime) > " & DateStop & ")"

используйте это для вашего запроса

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