C# kullanarak SQL formatına DateTime formatı

Geçerli tarih saat biçimini C#'tan kaydetmeye ve yyyy-MM-dd HH:mm:ss gibi bir SQL Server tarih biçimine dönüştürmeye çalışıyorum, böylece UPDATE sorgum için kullanabilirim.

Bu benim ilk kodumdu:

DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");

Tarih çıktısı tamam, ancak saat her zaman "12:00:00" bu yüzden kodumu aşağıdaki şekilde değiştirdim:

string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + 
myDateTime.TimeOfDay.ToString("HH:mm:ss");

Bana bu derleme hatasını verdi:

FormatException işlenmedi

Ve ayrıştırmam gerektiğini önerdi. Bu yüzden StackOverflow'daki araştırmama göre bunu kodumda yapmayı denedim:

string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + 
myDateTime.Parse.TimeOfDay.ToString("HH:mm:ss");

veya

string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + 
myDateTime.tryParse.TimeOfDay.ToString("HH:mm:ss");

Ancak bana bunun verilen bağlam için geçerli olmayan bir yöntem olduğunu söylüyor. Sorunuma çözüm aramaya çalıştım ve iki saattir takılıp kaldım. C#'ta hala biraz yeniyim, lütfen bana yardım edebilir misiniz?

Çözüm

bunu aşağıda deneyin

DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
Yorumlar (4)

İlk kodunuz şunu yaparak çalışacaktır

DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); //Remove myDateTime.Date part 
Yorumlar (0)

Sorununuz DateTimeı yalnızca tarihe kesen "Date" özelliğindedir. Dönüştürmeyi şu şekilde yapabilirsiniz:


DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); // 
Yorumlar (0)