2017-01-25 28 views
-1

我試圖將不同的日期格式轉換爲適當的SQL DateTime格式,並且出現錯誤。立即使用()爲國外

我有一個客戶端的機器,是建立與下列日期格式,「DD-MM-YYYY」(本地化是印度)

當內VB.Net NOW()使用它分析的月份和日子向後。我試過下面的代碼,但得到轉換錯誤。

Dim Month As String = Nothing 
    Dim Year As String = Nothing 
    Dim Day As String = Nothing 
    Dim Hour As String = Nothing 
    Dim Minute As String = Nothing 
    Dim Second As String = Nothing 
    Dim strDate As String = Nothing 
    Dim Date_to_SQL_DateTime As Date 


    Month = DatePart(DateInterval.Month, Now()).ToString 
    Year = DatePart(DateInterval.Year, Now()) 
    Day = DatePart(DateInterval.Day, Now()) 
    Hour = DatePart(DateInterval.Hour, Now()) 
    Minute = DatePart(DateInterval.Minute, Now()) 
    Second = DatePart(DateInterval.Second, Now()) 

    strDate = Month & 「/」 & Day & 「/」 & Year & 「 「 & Hour & 「:」 & Minute & 「:」 & Second 

    Date_to_SQL_DateTime = Date.ParseExact(strDate, "MM/dd/yyyy hh:mm:ss", CultureInfo.InvariantCulture) 

strDate返回

1/24/2017 23:17 

錯誤我收到是

String was not recognized as a valid Datetime 
+0

您可以使用GetDate()來替代,還是僅將日期作爲Date參數傳遞? –

+0

@AndrewMortimer嗯,這真的打開了另一罐蠕蟲......並進入使用UTC時間與用戶特定的偏移量。我寧願將時間存儲在數據庫中,因爲日期時間和特定於當前時間。這是一個很好的想法,我需要做的事情.. –

+0

你可以顯示你的插入語句嗎? –

回答

0

下面嘗試。需要確保參數的格式與ParseExact函數中指定的格式相同。

Dim Month As String = Nothing 
Dim Year As String = Nothing 
Dim Day As String = Nothing 
Dim Hour As String = Nothing 
Dim Minute As String = Nothing 
Dim Second As String = Nothing 
Dim strDate As String = Nothing 
Dim Date_to_SQL_DateTime As Date 

Month = DatePart(DateInterval.Month, Now()).ToString("00") 
Year = DatePart(DateInterval.Year, Now()).ToString("0000") 
Day = DatePart(DateInterval.Day, Now()).ToString("00") 
Hour = DatePart(DateInterval.Hour, Now()).ToString("00") 
Minute = DatePart(DateInterval.Minute, Now()).ToString("00") 
Second = DatePart(DateInterval.Second, Now()).ToString("00") 

strDate = Month & "/" & Day & "/" & Year & " " & Hour & ":" & Minute & ":" & Second 
Date_to_SQL_DateTime = DateTime.ParseExact(strDate, "MM/dd/yyyy hh:mm:ss", CultureInfo.InvariantCulture)