Po pierwsze, wydajesz się być zdezorientowany różnicą między DateTime
obiekt i sformatowany String
reprezentacja tego DateTime
obiekt. Now
lub jeszcze lepiej, DateTime.Now
jest już DateTime
obiekt, więc nie ma sensu formatować go jako ciągu, a następnie analizować ciąg, aby przywrócić go do DateTime
wartość ponownie. Możesz więc po prostu zrobić to samo, aby osiągnąć to samo:
Dim timestamp As Date = Date.Now
Zauważ, że w VB.NET Date
to słowo kluczowe, które jest skrótem od DateTime
, podobnie jak Integer
jest "krótki" dla Int32
.
Po drugie, nie powinieneś dołączać DateTime
wartości bezpośrednio do ciągu poleceń SQL. Powinieneś używać zapytania parametrycznego. Kiedy dołączysz DateTime
wartość do ciągu SQL, musisz upewnić się, że jest on poprawnie sformatowany (poprzez wywołanie timestamp.ToString(...)
). Niestety, który format jest właściwy, będzie zależeć wyłącznie od ustawień kultury serwera. Dlatego o wiele lepiej jest użyć parametru DB, ustawić wartość parametru równą rzeczywistej DateTime
obiektu, a następnie pozwól dostawcy bazy danych wykonać konwersję za Ciebie.