Za prvé, zdá se, že jste zmateni rozdílem mezi DateTime
objekt a formátovaný String
reprezentace tohoto DateTime
objekt. Now
nebo ještě lépe DateTime.Now
je již DateTime
objekt, takže nemá smysl jej formátovat jako řetězec a poté řetězec analyzovat, aby se dostal zpět do DateTime
hodnotu znovu. Takže můžete jednoduše udělat to samé, abyste dosáhli stejné věci:
Dim timestamp As Date = Date.Now
Všimněte si, že ve VB.NET Date
je klíčové slovo, které je zkratkou pro DateTime
, stejně jako Integer
je "zkratka" pro Int32
.
Za druhé, neměli byste přidávat DateTime
hodnoty přímo do řetězce příkazu SQL. Měli byste používat parametrizovaný dotaz. Když připojíte DateTime
hodnotu do řetězce SQL, musíte se ujistit, že je správně naformátován (voláním timestamp.ToString(...)
). Bohužel, který formát je správný, bude zcela záviset na nastavení kultury serveru. Takže je mnohem lepší použít parametr DB, nastavit hodnotu parametru rovnou skutečnému DateTime
objekt a poté nechte poskytovatele DB provést konverzi za vás.