2015-03-20 5 views
0

Как заменить 2014-12-27 с текущей датой в отчетеVB.NET формат даты

Dim ЦМД As New SqlCommand («Select * из LateComersReport где бновить =„2014-12-27“» , Conn)

или как я могу получить дату в формате «гггг-мм-dd'in заявление

Dim Tday As Date = Date.Today

ответ

0

Вы можете просто изменить свой SQL запрос к такому:

"Select * from LateComersReport where PDate = CONVERT(DATE, GETDATE())" 

Несколько вещей, которые я хотел бы указать: переменные даты, будь то в SQL или .NET, не имеют , имеют форматы. Форматирование полезно или полезно, когда вы говорите о показе даты, то есть в виде строки в отчете или в пользовательском интерфейсе. Вам не важно, как будет отображаться дата, когда это значение даты используется в вашем коде.

Также, как привычка, вы должны использовать параметры в своих операторах SQL, когда это применимо, в противоположность объединению строк вместе. Например, если вы должны были вставить собственное значение даты в запросе вместо того, чтобы использовать встроенный в GETDATE() функции, вы могли бы сделать SQL это:

Dim cmd As New SqlCommand("Select * from LateComersReport where PDate = @MyDateValue", conn) 
Dim param As New SqlParameter("@MyDateValue", Now) 
cmd.Parameters.Add(param) 

Причиной этого является объединение строк для построения SQL является по своей сути небезопасны из-за риска атаки SQL-инъекций.

+0

Большое спасибо Roryap ... Его работа прекрасна. Я испортил дату между ними и имел проблемы с Smtp и думал, что это связано с кодом, который мы редактировали. –

2

Во-первых, дата не имеет формата, она имеет только значение. Строка даты может иметь формат.

Во-вторых, всегда используйте sql-параметры вместо конкатенации строк, если вы строите свой SQL-запрос. Это предотвращает проблемы с sql-инъекцией или конверсией/локализацией. И всегда передавайте правильный тип (дата в этом случае), а не позволяйте базе данных интерпретировать ваш аргумент.

Using cmd As New SqlCommand("Select * from LateComersReport where PDate = @PDate", conn) 
    cmd.Parameters.Add("@PDate" , SqlDbType.Date).Value = Date.Today ' or SqlDbType.DateTime ' 
    ' .. ' 
End Using 
+0

Спасибо, Тим Шмельтер, я правильно понял –

+0

@rajan: если он решил ваш вопрос, попробуйте его. Добро пожаловать. –

Смежные вопросы